summaryrefslogtreecommitdiffstats
path: root/CLI/ruby/README.md
blob: a44511ad33fbbe771414b0d4c2c5e4f5e20b3682 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# GameOfLife

The implementation of the [Conway's Game of Life](https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life) ruby CLI gem

## Installation
```bash
$ gem install terminal_game_of_life
```

## Usage

Run `$game-of-life -i https://gitlab.com/a14m --live-cell +`

Check `game-of-life --help` for usage info.

```
  game-of-life --version, -v    # Prints the Game of Life version information
  game-of-life help [COMMAND]   # Describe available commands or one specific command
  game-of-life start [OPTIONS]  # Start the Game of Life simulations (default command)

Options:
  -s, [--seed=SEED]            # Specify the seed number to use as an initial state (default to random).
  -i, [--input=VALUE]          # Specify the path/URL for the file to use as an initial state. (used instead of seed)
  -w, [--width=WIDTH]          # Specify the width of generated universe. (default to terminal width)
  -h, [--height=HEIGHT]        # Specify the hight of generated universe. (default to terminal height)
      [--dead-cell=CHAR]       # Specify the dead-cell representation
                               # Default:
      [--live-cell=CHAR]       # Specify the dead-cell representation
                               # Default: █
  -d, [--delay=Milli-Seconds]  # Specify the introduced delay between each generation
                               # Default: 50
```

## Demo
[![asciicast](https://asciinema.org/a/h7G2EUAXRfwlBVLZjQuXjoTnp.svg)](https://asciinema.org/a/h7G2EUAXRfwlBVLZjQuXjoTnp)

## Development

- Clone the repo.
- Navigate to the ruby CLI implementation `cd game-of-life/CLI/ruby`.
- run `bundle install` to install dependencies.
- run `bundle rake build` to build the gem/CLI into the `pkg` directory.
- run `bundle rake install` to build and install gem/CLI into system gems.

## Linting
Run `bundle exec rubocop`

## Testing
Run `bundle exec rspec` or `bundle exec rake spec`

## Documentation
Run `bundle exec yard`

## Release
- Update the [version](./lib/game_of_live/version.rb) number
- Update the [CHANGELOG](./CHANGELOG.md)
- Create a git(lab) tag `ruby/v#{version_number}` ex: `ruby/v0.1.1-pre`

The tag will automatically trigger the release workflow after successful build/test
and release the changes to [rubygems.org](https://rubygems.org/gems/terminal_game_of_life)

## Extra information
### [Contributing](../../CONTRIBUTING.md)
### [License](../../LICENSE.md)
### [Code of Conduct](../../CODE_OF_CONDUCT.md)