toy_robo_simulator 0.1.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8d36581000b8d9c29ed537e9dd0f387fb9916e76
4
- data.tar.gz: dd370f74e8875bdd316da77319ca0272a3f1b2d9
3
+ metadata.gz: 62ae956554d56c2339ad12155828b718e5c43001
4
+ data.tar.gz: 4e821907248355bb259346bda33259f1859dd661
5
5
  SHA512:
6
- metadata.gz: e9220146ac4c361c80413c1eecf03dbafb5b52f39101491fd2b4c660fb5957a6141d8ac77ad2dd0482bb9995219cfd5021f4f81b23ebb91bb0c9c461b836ec98
7
- data.tar.gz: b5fce97d98b20109882deb14a82ea1f2d397c7e100422c038f475f669195c669b2a4a5dfff2cdad30160135b3b0fec7fbe537b5eecce3da628080dd0e4e3eb7f
6
+ metadata.gz: 185656aec074d6b64dc86c8e07081380232c7551683e66634ab78042c1307982ca4e05a1dff1f96b0592fbafba25d69e1079905eed2bda37cbfcd1d5adb947d3
7
+ data.tar.gz: b0aec3cc330d7290d00324f2a481d781a77867feda4e81db6aa565e28baf2cffe6b9125bc085a82308f8502fe59710b8962a5ebe9ce8a1d2d86abedfbc76304d
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ *.gem
data/.yardopts ADDED
@@ -0,0 +1 @@
1
+ --markup=markdown
data/Gemfile CHANGED
@@ -2,3 +2,4 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in toy_robo_simulator.gemspec
4
4
  gemspec
5
+ gem 'codeclimate-test-reporter', group: :test, require: nil
data/README.md CHANGED
@@ -1,34 +1,101 @@
1
- # Toy Robot Simulator
1
+ # Toy Robo Simulator
2
2
 
3
- ## Installation
3
+ [![Gem Version](https://badge.fury.io/rb/toy_robo_simulator.svg)](https://rubygems.org/gems/toy_robo_simulator) [![](https://travis-ci.org/adlerhsieh/toy_robo_simulator.svg)](https://travis-ci.org/adlerhsieh/toy_robo_simulator) [![Code Climate](https://codeclimate.com/github/adlerhsieh/toy_robo_simulator/badges/gpa.svg)](https://codeclimate.com/github/adlerhsieh/toy_robo_simulator) [![Test Coverage](https://codeclimate.com/github/adlerhsieh/toy_robo_simulator/badges/coverage.svg)](https://codeclimate.com/github/adlerhsieh/toy_robo_simulator/coverage)
4
+
5
+ Toy Robo Simulator is a command line application that simulates the movement of a toy robot, or robo, on a square table. Entering an interactive console, you have several commands to control the robo including `PLACE`, `MOVE`, `LEFT`, and `RIGHT`. It's like moving a character in a PRG game. Feel free to roam around.
4
6
 
5
- Run:
7
+ ## Installation
6
8
 
7
9
  ```
8
10
  gem install toy_robo_simulator
9
11
  ```
10
12
 
11
- ## Usage
13
+ Since this is a standalone program, there is no need to install with a `Gemfile`.
14
+
15
+ ## Initialize
16
+
17
+ ```
18
+ robo
19
+ ```
20
+
21
+ You should see a welcome message along with a command line prompt. Ready to move the robots!
22
+
23
+ ## Available Commands
24
+
25
+ ```ruby
26
+ PLACE
27
+ # Place a robo. Requires x, y, and orientation arguments. Arguments are separated by a white space.
28
+ # e.g. PLACE 2 5 NORTH
29
+
30
+ MOVE
31
+ # Move forward one space. e.g. Facing north will move the robo one unit toward north.
12
32
 
13
- ## Development Specs
33
+ LEFT
34
+ # Turn left.
14
35
 
15
- - [ ] Create a 5x5 tabletop when initated
16
- - [ ] The (0,0) is the south west corner
17
- - [ ] The robot cannot move out of range
18
- - [ ] Available Commands
19
- - [ ] PLACE X, Y, F: Place the robot on a specific position with direction
20
- - [ ] MOVE: move forward one space
21
- - [ ] LEFT: turn left
22
- - [ ] RIGHT: turn right
23
- - [ ] REPORT: report current position and direction
24
- - [ ] PLACE should be the first command, otherwise ignored
25
- - [ ] Allow both CLI input and file input
36
+ RIGHT
37
+ # Turn right.
38
+
39
+ REPORT
40
+ # Report current position and orientation.
41
+
42
+ HELP
43
+ # Display all available commands.
44
+ ```
45
+
46
+ The commands are not case-sensitive. Either `PLACE`, `Place` or `place` will work.
47
+
48
+ However, several rules to follow:
49
+
50
+ - A robo must be placed on the table before any other commands.
51
+ - The robo cannot be placed out of the table.
52
+ - The robo is not allowed to move out the the table.
53
+
54
+ ## A Complete Example
55
+
56
+ ```
57
+ Welcome to Toy Robo Simulator!
58
+
59
+ Available Commands:
60
+ - PLACE: Place a robo. Requires x, y, and orientation arguments.
61
+ e.g. PLACE 2 5 NORTH
62
+ - MOVE: Move forward
63
+ - LEFT: Turn left
64
+ - RIGHT: Turn right
65
+ - REPORT: Report current position and orientation
66
+ - HELP: Display all available commands
67
+ Use PLACE first to start the simulation :)
68
+
69
+ 00 > PLACE 2 1 NORTH
70
+ It is placed.
71
+ 01 > MOVE
72
+ It moves forward.
73
+ 02 > LEFT
74
+ It turns left.
75
+ 03 > REPORT
76
+ Robo is now at (2,2) facing WEST
77
+ 04 > MOVE
78
+ It moves forward.
79
+ 05 > RIGHT
80
+ It turns right
81
+ 06 > MOVE
82
+ It moves forward.
83
+ 07 > REPORT
84
+ Robo is now at (1,3) facing NORTH
85
+ 08 > exit
86
+
87
+ Thank You!
88
+ ```
89
+
90
+ ## Development Documentation
91
+
92
+ Detailed documentations of every class, module, and method are on [RubyDoc](http://www.rubydoc.info/gems/toy_robo_simulator/1.0.0).
26
93
 
27
94
  ## Contributing
28
95
 
29
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/toy_robo_simulator. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
96
+ Bug reports and pull requests are welcome on GitHub at https://github.com/adlerhsieh/toy_robo_simulator. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
30
97
 
31
98
  ## License
32
99
 
33
100
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
34
-
101
+
@@ -1,5 +1,5 @@
1
1
  require_relative 'toy_robo_simulator/version'
2
- require_relative 'toy_robo_simulator/env'
2
+ require_relative 'toy_robo_simulator/message'
3
3
  require_relative 'toy_robo_simulator/table'
4
4
  require_relative 'toy_robo_simulator/validator'
5
5
  require_relative 'toy_robo_simulator/robo'
@@ -7,11 +7,11 @@ require_relative 'toy_robo_simulator/console'
7
7
 
8
8
  # This module includes all other modules and classes in this program.
9
9
  # Basically it can be divided into:
10
- #
10
+ #
11
11
  # - Console: Offering a command line interface for input & output.
12
12
  # - Robo: A robot simulating the movement on a table.
13
13
  # - Validator: Validating the robo's actions and their prerequisities.
14
14
  # - Others
15
- #
16
15
  module ToyRoboSimulator
16
+ ORIENTATIONS = %i(north west south east).freeze
17
17
  end
@@ -1,46 +1,64 @@
1
1
  module ToyRoboSimulator
2
- # The console is responsible for initaing a command line interface for
2
+ # The console is responsible for initaing an interactive command line interface for
3
3
  # users to access the program.
4
4
  class Console
5
+ attr_accessor :robo
6
+ # Available uner-input commands
7
+ AVAILABLE_COMMANDS = %w(place move left right report help exit).freeze
8
+
9
+ # Initializes a CLI that includes a Robo instance.
5
10
  def initialize
6
- puts ::MESSAGE
11
+ puts MESSAGE
7
12
  @n = 0
8
13
  @robo = Robo.new
9
14
  print "#{format('%02d', @n)} > "
10
15
  end
11
16
 
17
+ # Starts watching for user input.
12
18
  def watch
13
- command = STDIN.gets
19
+ command = STDIN.gets.chomp
14
20
  while command
15
21
  run(command)
16
22
  print "#{format('%02d', @n += 1)} > "
17
- command = STDIN.gets
23
+ command = STDIN.gets.chomp
18
24
  end
19
25
  end
20
26
 
27
+ # Analyzes if command is available, and process the command.
28
+ # The command should be separated either by white spaces or commas.
29
+ # However, only commands in AVAILABLE_COMMANDS are allowed.
30
+ #
31
+ # ```
32
+ # console = ToyRoboSimulator::Console.new
33
+ # console.run('hello world') # => 'unknown command.'
34
+ # console.run('foo, bar') # => 'unknown command.'
35
+ # console.run('exit') # => 'Thank You!'
36
+ # ```
21
37
  def run(command)
22
- args = command.split(' ')
23
- action = args[0].gsub("\n", '').downcase
24
- case
25
- when ::AVAILABLE_COMMANDS.include?(action)
26
- process(action, args)
27
- when action == 'exit'
28
- exit_program
29
- when action == 'help'
30
- help
38
+ args = to_args(command)
39
+ if AVAILABLE_COMMANDS.include?(args[0])
40
+ process(args[0], args[1..-1])
31
41
  else
32
- puts ::WARNING
42
+ puts WARNING
33
43
  end
34
44
  end
35
45
 
36
46
  private
37
47
 
48
+ # Directly sends the command with arguments to the Robo instance.
38
49
  def process(action, args)
39
- begin
40
- @robo.send(action.to_sym, *args[1..-1])
41
- rescue ArgumentError => e
42
- tip if e.message.include? 'wrong number of arguments'
50
+ case action
51
+ when 'exit' then exit_program
52
+ when 'help' then help
53
+ else
54
+ @robo.send(action.to_sym, *args)
43
55
  end
56
+ rescue ArgumentError => e
57
+ tip if e.message.include? 'wrong number of arguments'
58
+ end
59
+
60
+ def to_args(command)
61
+ command.split(' ').map { |n| n.split(',') }.flatten.map(&:chomp).map(&:downcase)
44
62
  end
45
63
 
46
64
  def tip
@@ -1,6 +1,8 @@
1
1
  require 'colorize'
2
2
 
3
- AVAILABLE_COMMANDS = %w(place move left right report)
3
+ TIP = "#{'WARNING'.colorize(:red)}
4
+ - PLACE should take 3 arguments: x, y, and orientation. e.g. PLACE 1 2 NORTH
5
+ - Other commands take no argument.".freeze
4
6
 
5
7
  HELP = "Available Commands:
6
8
  - PLACE: Place a robo. Requires x, y, and orientation arguments.
@@ -9,15 +11,9 @@ HELP = "Available Commands:
9
11
  - LEFT: Turn left
10
12
  - RIGHT: Turn right
11
13
  - REPORT: Report current position and orientation
12
- - HELP: Display all available commands"
14
+ - HELP: Display all available commands".freeze
13
15
 
14
16
  MESSAGE = "\n#{'Welcome to Toy Robo Simulator!'.colorize(:green)}
15
- \n#{HELP}\nUse PLACE first to start the simulation :)\n\n"
16
-
17
- WARNING = "Command Not Found. See 'HELP'."
18
-
19
- TIP = "#{'WARNING'.colorize(:red)}
20
- - PLACE should take 3 arguments: x, y, and orientation. e.g. PLACE 1 2 NORTH
21
- - Other commands take no argument."
17
+ \n#{HELP}\nUse PLACE first to start the simulation :)\n\n".freeze
22
18
 
23
- ORIENTATIONS = %i(north west south east)
19
+ WARNING = "Command Not Found. See 'HELP'.".freeze
@@ -1,50 +1,106 @@
1
1
  module ToyRoboSimulator
2
+ # Rubo is the character of this program. It serves to simulates the movement of a robot on a table.
3
+ # The available actions are place, move, left, right, and report. Each action is validated before execution
4
+ # and will respond with the result.
2
5
  class Robo
3
6
  include Validator
4
7
  attr_accessor :x, :y, :orientation
5
8
 
9
+ # Initializes a Robo instance with a table sizes 5x5.
6
10
  def initialize
7
11
  @table = Table.new(5, 5)
8
12
  @errors = []
9
13
  end
10
14
 
15
+ # Places the robo on the table. The x and y arguments indicates its position.
16
+ # The positions shoule be within the range of the table.
17
+ # The orientation is limited to either north, south, west, and east.
18
+ # Any invalid argument will not set the Robo's attributes.
19
+ #
20
+ # ```
21
+ # robo = ToyRoboSimulator::Robo.new
22
+ # robo.place(1, 2, :north) # => 'It is placed.'
23
+ # robo.x # => 1
24
+ # robo.y # => 2
25
+ # robo.orientation # => :north
26
+ #
27
+ # robo.place("foo", "bar", :south)
28
+ # # => 'X must be a number'
29
+ # # => 'Y must be a number'
30
+ # robo.x # => nil
31
+ # robo.y # => nil
32
+ # ```
11
33
  def place(x, y, orientation)
12
34
  validate_placement(x, y, orientation)
13
35
  warning && return if @errors.any?
14
- @x, @y = x.to_i, y.to_i
36
+ @x = x.to_i
37
+ @y = y.to_i
15
38
  @orientation = orientation.downcase.to_sym
16
39
  puts 'It is placed.'
17
40
  end
18
41
 
42
+ # Moves forward one space. This method is noly valid after the Robo is placed.
43
+ # Facing north will move the Robo one unit toward north.
44
+ # However, no further move is allowed if the Robo is at the edge of a table,
45
+ # which means, for example, its x coordinate is equal to the max value of
46
+ # a Table's width.
47
+ #
48
+ # ```
49
+ # robo = ToyRoboSimulator::Robo.new
50
+ # robo.move # => 'The Robo is not placed yet. Use PLACE command first.'
51
+ #
52
+ # robo.place(4, 2, :east) # => 'It is placed.'
53
+ # robo.x # => 4
54
+ # robo.move # => 'It moves forward.'
55
+ # robo.x # => 5
56
+ # robo.move # => 'The Robo is at edge. No further move is allowed.'
57
+ # robo.x # => 5
58
+ # ```
19
59
  def move
20
60
  validate_if_placed
21
61
  validate_movement
22
62
  warning && return if @errors.any?
23
- case orientation
24
- when :north then @y += 1
25
- when :east then @x += 1
26
- when :south then @y -= 1
27
- when :west then @x -= 1
28
- end
63
+ move_forward(1)
29
64
  puts 'It moves forward.'
30
65
  end
31
66
 
67
+ # Turns left. It changes the Robo's current orientation.
68
+ # This method is noly valid after the Robo is placed.
69
+ #
70
+ # ```
71
+ # robo = ToyRoboSimulator::Robo.new
72
+ # robo.left # => 'The Robo is not placed yet. Use PLACE command first.'
73
+ #
74
+ # robo.place(3, 3, :east) # => 'It is placed.'
75
+ # robo.orientation # => :east
76
+ # robo.left # => 'It turns left'
77
+ # robo.orientation # => :north
78
+ # ```
32
79
  def left
33
80
  validate_if_placed
34
81
  warning && return if @errors.any?
35
- index = ::ORIENTATIONS.index(@orientation) + 1
36
- @orientation = ::ORIENTATIONS[index] || :north
82
+ turn(:left)
37
83
  puts 'It turns left.'
38
84
  end
39
85
 
86
+ # Turns right. See `#left`.
40
87
  def right
41
88
  validate_if_placed
42
89
  warning && return if @errors.any?
43
- index = ::ORIENTATIONS.index(@orientation) - 1
44
- @orientation = ::ORIENTATIONS[index]
90
+ turn(:right)
45
91
  puts 'It turns right'
46
92
  end
47
93
 
94
+ # Reports current postion and orientation.
95
+ # This method is noly valid after the Robo is placed.
96
+ #
97
+ # ```
98
+ # robo = ToyRoboSimulator::Robo.new
99
+ # robo.report # => 'The Robo is not placed yet. Use PLACE command first.'
100
+ #
101
+ # robo.place(3, 3, :east) # => 'It is placed.'
102
+ # robo.report # => 'Robo is now at (3,3) facing EAST'
103
+ # ```
48
104
  def report
49
105
  validate_if_placed
50
106
  warning && return if @errors.any?
@@ -58,5 +114,19 @@ module ToyRoboSimulator
58
114
  @errors = []
59
115
  end
60
116
 
117
+ def turn(direction)
118
+ i = direction == :left ? 1 : -1
119
+ index = ORIENTATIONS.index(@orientation) + i
120
+ @orientation = ORIENTATIONS[index] || :north
121
+ end
122
+
123
+ def move_forward(unit)
124
+ case @orientation
125
+ when :north then @y += unit
126
+ when :east then @x += unit
127
+ when :south then @y -= unit
128
+ when :west then @x -= unit
129
+ end
130
+ end
61
131
  end
62
132
  end
@@ -1,6 +1,12 @@
1
1
  module ToyRoboSimulator
2
+ # Table is the environment in the program which decides
3
+ # the length and width of the table. The table will be used to
4
+ # validate the placement and movement of a Robo.
5
+ #
6
+ # The attributes x and y are the maximum values of length and width,
7
+ # while 0 is the minimum value.
2
8
  class Table
3
- attr_accessor :x, :y
9
+ attr_reader :x, :y
4
10
  def initialize(x, y)
5
11
  @x = x
6
12
  @y = y
@@ -1,5 +1,9 @@
1
1
  module ToyRoboSimulator
2
+ # Validator serves to validate operations performed by a Robo. It is a standalone module but
3
+ # takes arguments and attributes from a Robo.
2
4
  module Validator
5
+ # Ensures input values of Robo#place action is valid in type and range.
6
+ # Returns false if it is not valid.
3
7
  def validate_placement(x, y, orientation)
4
8
  @errors << 'X must be a number' unless int?(x)
5
9
  @errors << 'Y must be a number' unless int?(y)
@@ -8,21 +12,18 @@ module ToyRoboSimulator
8
12
  @errors << 'Orientation should be either NORTH, SOUTH, EAST, or WEST' unless orientation_valid?(orientation)
9
13
  end
10
14
 
15
+ # Prevents Robo#move from moving out of the table.
16
+ # Returns false if the Robo is at the edge of the table.
11
17
  def validate_movement
12
- @errors << 'The Robo is at edge. No further move is allowed.' if at_table_edge?
18
+ @errors << 'The Robo is at edge. No further move is allowed.' if edge?
13
19
  end
14
20
 
21
+ # Ensures the Robo is placed before any other actions are performed.
22
+ # Returns false if no attributes are set for the Robo.
15
23
  def validate_if_placed
16
24
  @errors << 'The Robo is not placed yet. Use PLACE command first.' unless @x && @y && @orientation
17
25
  end
18
26
 
19
- def at_table_edge?
20
- (@orientation == :north && @y == @table.y) ||
21
- (@orientation == :east && @x == @table.x) ||
22
- (@orientation == :south && @y == 0) ||
23
- (@orientation == :west && @x == 0)
24
- end
25
-
26
27
  private
27
28
 
28
29
  def int?(value)
@@ -34,7 +35,20 @@ module ToyRoboSimulator
34
35
  end
35
36
 
36
37
  def orientation_valid?(orientation)
37
- ::ORIENTATIONS.include? orientation.downcase.to_sym
38
+ ORIENTATIONS.include? orientation.downcase.to_sym
39
+ end
40
+
41
+ def edge?
42
+ case @orientation
43
+ when :north
44
+ @y == @table.y
45
+ when :east
46
+ @x == @table.x
47
+ when :south
48
+ @y == 0
49
+ when :west
50
+ @x == 0
51
+ end
38
52
  end
39
53
  end
40
54
  end
@@ -1,3 +1,3 @@
1
1
  module ToyRoboSimulator
2
- VERSION = '0.1.0'
2
+ VERSION = '1.0.1'
3
3
  end
@@ -4,23 +4,23 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'toy_robo_simulator/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "toy_robo_simulator"
7
+ spec.name = 'toy_robo_simulator'
8
8
  spec.version = ToyRoboSimulator::VERSION
9
- spec.authors = ["Adler"]
10
- spec.email = ["nkj20932@hotmail.com"]
9
+ spec.authors = ['Adler']
10
+ spec.email = ['nkj20932@hotmail.com']
11
11
 
12
- spec.summary = %q{A toy robot simulator}
13
- spec.description = %q{A CLI that simulates the movement of a robot on a 5x5 table}
14
- spec.homepage = "http://github.com/adlerhsieh/toy_rubo_simulator"
15
- spec.license = "MIT"
12
+ spec.summary = 'A toy robot simulator'
13
+ spec.description = 'A CLI that simulates the movement of a robot on a 5x5 table'
14
+ spec.homepage = 'http://github.com/adlerhsieh/toy_robo_simulator'
15
+ spec.license = 'MIT'
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
- spec.bindir = "exe"
18
+ spec.bindir = 'exe'
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
- spec.require_paths = ["lib"]
20
+ spec.require_paths = ['lib']
21
21
 
22
- spec.add_development_dependency "bundler", "~> 1.10"
23
- spec.add_development_dependency "rake", "~> 10.0"
24
- spec.add_development_dependency "rspec"
25
- spec.add_development_dependency "colorize"
22
+ spec.add_development_dependency 'bundler', '~> 1.10'
23
+ spec.add_development_dependency 'rake', '~> 10.0'
24
+ spec.add_development_dependency 'rspec', '3.4.0'
25
+ spec.add_development_dependency 'colorize', '0.7.7'
26
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: toy_robo_simulator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adler
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-03-10 00:00:00.000000000 Z
11
+ date: 2016-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -42,30 +42,30 @@ dependencies:
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 3.4.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 3.4.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: colorize
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: 0.7.7
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: 0.7.7
69
69
  description: A CLI that simulates the movement of a robot on a 5x5 table
70
70
  email:
71
71
  - nkj20932@hotmail.com
@@ -78,6 +78,7 @@ files:
78
78
  - ".rubocop.yml"
79
79
  - ".ruby-version"
80
80
  - ".travis.yml"
81
+ - ".yardopts"
81
82
  - CODE_OF_CONDUCT.md
82
83
  - Gemfile
83
84
  - LICENSE.txt
@@ -88,13 +89,13 @@ files:
88
89
  - bin/setup
89
90
  - lib/toy_robo_simulator.rb
90
91
  - lib/toy_robo_simulator/console.rb
91
- - lib/toy_robo_simulator/env.rb
92
+ - lib/toy_robo_simulator/message.rb
92
93
  - lib/toy_robo_simulator/robo.rb
93
94
  - lib/toy_robo_simulator/table.rb
94
95
  - lib/toy_robo_simulator/validator.rb
95
96
  - lib/toy_robo_simulator/version.rb
96
97
  - toy_robo_simulator.gemspec
97
- homepage: http://github.com/adlerhsieh/toy_rubo_simulator
98
+ homepage: http://github.com/adlerhsieh/toy_robo_simulator
98
99
  licenses:
99
100
  - MIT
100
101
  metadata: {}
@@ -119,3 +120,4 @@ signing_key:
119
120
  specification_version: 4
120
121
  summary: A toy robot simulator
121
122
  test_files: []
123
+ has_rdoc: