gobstones 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop.yml +133 -0
  3. data/.rubocop_todo.yml +75 -0
  4. data/.simplecov +1 -3
  5. data/.tool-versions +1 -0
  6. data/.travis.yml +9 -2
  7. data/Gemfile +11 -5
  8. data/Gemfile.lock +65 -39
  9. data/README.md +8 -1
  10. data/Rakefile +1 -1
  11. data/bin/gobstones +1 -1
  12. data/gobstones.gemspec +12 -11
  13. data/lib/gobstones/cli/printer.rb +41 -28
  14. data/lib/gobstones/cli/runner.rb +50 -15
  15. data/lib/gobstones/extensions/all.rb +1 -1
  16. data/lib/gobstones/extensions/boolean.rb +1 -5
  17. data/lib/gobstones/extensions/{fixnum.rb → integer.rb} +2 -4
  18. data/lib/gobstones/extensions/string.rb +1 -3
  19. data/lib/gobstones/lang/all.rb +3 -3
  20. data/lib/gobstones/lang/commands/all.rb +11 -10
  21. data/lib/gobstones/lang/commands/boom.rb +26 -0
  22. data/lib/gobstones/lang/commands/command_block.rb +23 -23
  23. data/lib/gobstones/lang/commands/conditional.rb +26 -0
  24. data/lib/gobstones/lang/commands/if.rb +13 -0
  25. data/lib/gobstones/lang/commands/if_then_else.rb +26 -0
  26. data/lib/gobstones/lang/commands/ir_al_origen.rb +15 -0
  27. data/lib/gobstones/lang/commands/mover.rb +23 -0
  28. data/lib/gobstones/lang/commands/multiple_assignment.rb +34 -21
  29. data/lib/gobstones/lang/commands/poner.rb +31 -0
  30. data/lib/gobstones/lang/commands/procedure_call.rb +8 -8
  31. data/lib/gobstones/lang/commands/repeat_with.rb +69 -0
  32. data/lib/gobstones/lang/commands/sacar.rb +29 -0
  33. data/lib/gobstones/lang/commands/single_assignment.rb +15 -20
  34. data/lib/gobstones/lang/commands/skip.rb +15 -0
  35. data/lib/gobstones/lang/commands/vaciar_tablero.rb +15 -0
  36. data/lib/gobstones/lang/commands/while.rb +20 -0
  37. data/lib/gobstones/lang/definitions/definition.rb +16 -23
  38. data/lib/gobstones/lang/definitions/definition_call.rb +7 -15
  39. data/lib/gobstones/lang/definitions/function.rb +1 -7
  40. data/lib/gobstones/lang/definitions/main.rb +1 -8
  41. data/lib/gobstones/lang/definitions/no_return_statement.rb +2 -8
  42. data/lib/gobstones/lang/definitions/procedure.rb +1 -7
  43. data/lib/gobstones/lang/definitions/return_from_function.rb +6 -13
  44. data/lib/gobstones/lang/definitions/return_from_main.rb +15 -10
  45. data/lib/gobstones/lang/definitions/var_tuple.rb +10 -12
  46. data/lib/gobstones/lang/expressions/arithmetic_expressions.rb +17 -27
  47. data/lib/gobstones/lang/expressions/boolean_expressions.rb +4 -10
  48. data/lib/gobstones/lang/expressions/comparison_expressions.rb +0 -16
  49. data/lib/gobstones/lang/expressions/enclosed_by_parens_expression.rb +3 -5
  50. data/lib/gobstones/lang/expressions/expression.rb +18 -0
  51. data/lib/gobstones/lang/expressions/function_call.rb +9 -6
  52. data/lib/gobstones/lang/expressions/one_arg_expression.rb +8 -16
  53. data/lib/gobstones/lang/expressions/primitive_functions.rb +24 -16
  54. data/lib/gobstones/lang/expressions/two_arg_expression.rb +9 -16
  55. data/lib/gobstones/lang/expressions/type_bound_functions.rb +30 -25
  56. data/lib/gobstones/lang/expressions/var_name.rb +9 -13
  57. data/lib/gobstones/lang/literals/all.rb +3 -3
  58. data/lib/gobstones/lang/literals/{booleans.rb → boolean.rb} +24 -22
  59. data/lib/gobstones/lang/literals/{colors.rb → color.rb} +4 -14
  60. data/lib/gobstones/lang/literals/{directions.rb → direction.rb} +3 -13
  61. data/lib/gobstones/lang/literals/literal.rb +35 -27
  62. data/lib/gobstones/lang/literals/number.rb +6 -8
  63. data/lib/gobstones/lang/program.rb +9 -16
  64. data/lib/gobstones/modules/equality_definition.rb +23 -0
  65. data/lib/gobstones/parser/ast/ast.rb +48 -70
  66. data/lib/gobstones/parser/parse_error.rb +2 -7
  67. data/lib/gobstones/parser/treetop_parser.rb +9 -14
  68. data/lib/gobstones/runner/board.rb +12 -15
  69. data/lib/gobstones/runner/cell.rb +14 -20
  70. data/lib/gobstones/runner/errors/all.rb +1 -1
  71. data/lib/gobstones/runner/errors/boom_error.rb +0 -5
  72. data/lib/gobstones/runner/errors/definition_not_found_error.rb +7 -7
  73. data/lib/gobstones/runner/errors/empty_cell_error.rb +0 -5
  74. data/lib/gobstones/runner/errors/gobstones_runtime_error.rb +0 -5
  75. data/lib/gobstones/runner/errors/gobstones_type_error.rb +2 -7
  76. data/lib/gobstones/runner/errors/out_of_board_error.rb +0 -5
  77. data/lib/gobstones/runner/errors/undefined_variable_error.rb +6 -4
  78. data/lib/gobstones/runner/errors/wrong_arguments_error.rb +0 -5
  79. data/lib/gobstones/runner/execution_context.rb +16 -33
  80. data/lib/gobstones/runner/head.rb +17 -20
  81. data/lib/gobstones/runner/program_result.rb +12 -0
  82. data/lib/gobstones/type_check_result.rb +0 -4
  83. data/spec/lang/commands/boom_spec.rb +7 -0
  84. data/spec/lang/commands/command_block_spec.rb +15 -0
  85. data/spec/lang/commands/if_spec.rb +32 -0
  86. data/spec/lang/commands/if_then_else_spec.rb +19 -0
  87. data/spec/lang/commands/ir_al_origen_spec.rb +11 -0
  88. data/spec/lang/commands/mover_spec.rb +30 -0
  89. data/spec/lang/commands/multiple_assignment_spec.rb +39 -22
  90. data/spec/lang/commands/poner_spec.rb +27 -0
  91. data/spec/lang/commands/procedure_call_spec.rb +26 -28
  92. data/spec/lang/commands/procedure_spec.rb +32 -32
  93. data/spec/lang/commands/repeat_with_spec.rb +64 -0
  94. data/spec/lang/commands/sacar_spec.rb +32 -0
  95. data/spec/lang/commands/single_assignment_spec.rb +5 -6
  96. data/spec/lang/commands/skip_spec.rb +10 -0
  97. data/spec/lang/commands/vaciar_tablero_spec.rb +10 -0
  98. data/spec/lang/commands/while_spec.rb +39 -0
  99. data/spec/lang/definitions/main_spec.rb +34 -0
  100. data/spec/lang/definitions/no_return_statement_spec.rb +4 -5
  101. data/spec/lang/definitions/var_tuple_spec.rb +4 -7
  102. data/spec/lang/expressions/arithmetic_expressions_spec.rb +37 -64
  103. data/spec/lang/expressions/boolean_expressions_spec.rb +25 -34
  104. data/spec/lang/expressions/comparison_expressions_spec.rb +109 -155
  105. data/spec/lang/expressions/enclosed_by_parens_expression_spec.rb +3 -7
  106. data/spec/lang/expressions/function_call_spec.rb +24 -20
  107. data/spec/lang/expressions/primitive_functions_spec.rb +28 -39
  108. data/spec/lang/expressions/type_bound_functions_spec.rb +10 -18
  109. data/spec/lang/expressions/var_name_spec.rb +8 -12
  110. data/spec/lang/literals/{booleans_spec.rb → boolean_spec.rb} +3 -5
  111. data/spec/lang/literals/color_spec.rb +19 -0
  112. data/spec/lang/literals/direction_spec.rb +46 -0
  113. data/spec/lang/literals/{numbers_spec.rb → number_spec.rb} +3 -4
  114. data/spec/matchers/parse_matcher.rb +9 -11
  115. data/spec/parser/arithmetic_expressions_spec.rb +51 -61
  116. data/spec/parser/assignments_spec.rb +21 -31
  117. data/spec/parser/boolean_expressions_spec.rb +35 -43
  118. data/spec/parser/command_block_spec.rb +18 -20
  119. data/spec/parser/data_types_spec.rb +9 -19
  120. data/spec/parser/function_calls_spec.rb +19 -19
  121. data/spec/parser/function_definitions_spec.rb +17 -22
  122. data/spec/parser/gobstones_program_spec.rb +30 -30
  123. data/spec/parser/if_command_spec.rb +19 -28
  124. data/spec/parser/main_definition_spec.rb +13 -16
  125. data/spec/parser/nested_expressions_spec.rb +20 -24
  126. data/spec/parser/primitive_expressions_spec.rb +33 -38
  127. data/spec/parser/procedure_calls_spec.rb +17 -18
  128. data/spec/parser/procedure_definitions_spec.rb +12 -15
  129. data/spec/parser/repeat_with_command_spec.rb +10 -10
  130. data/spec/parser/simple_commands_spec.rb +23 -37
  131. data/spec/parser/treetop_parser_spec.rb +87 -83
  132. data/spec/parser/var_tuple_spec.rb +8 -12
  133. data/spec/parser/while_command_spec.rb +11 -14
  134. data/spec/runner/board_spec.rb +28 -33
  135. data/spec/runner/cell_spec.rb +21 -28
  136. data/spec/runner/execution_context_spec.rb +18 -35
  137. data/spec/runner/head_spec.rb +54 -60
  138. data/spec/spec_helper.rb +10 -1
  139. data/spec/support/board_assertions.rb +18 -0
  140. data/spec/{gobstones_lang_test_objects.rb → support/gobstones_lang_test_objects.rb} +6 -4
  141. data/spec/type_checker_spec.rb +19 -25
  142. metadata +80 -56
  143. data/.ruby-version +0 -1
  144. data/lib/gobstones/lang/commands/boom_cmd.rb +0 -31
  145. data/lib/gobstones/lang/commands/conditional_cmd.rb +0 -31
  146. data/lib/gobstones/lang/commands/if_cmd.rb +0 -38
  147. data/lib/gobstones/lang/commands/ir_al_origen_cmd.rb +0 -19
  148. data/lib/gobstones/lang/commands/mover_cmd.rb +0 -27
  149. data/lib/gobstones/lang/commands/poner_cmd.rb +0 -35
  150. data/lib/gobstones/lang/commands/repeat_with_cmd.rb +0 -77
  151. data/lib/gobstones/lang/commands/sacar_cmd.rb +0 -33
  152. data/lib/gobstones/lang/commands/skip_cmd.rb +0 -19
  153. data/lib/gobstones/lang/commands/vaciar_tablero_cmd.rb +0 -19
  154. data/lib/gobstones/lang/commands/while_cmd.rb +0 -25
  155. data/lib/gobstones/modules/equal_by_class.rb +0 -13
  156. data/spec/lang/commands/boom_cmd_spec.rb +0 -8
  157. data/spec/lang/commands/cmd_block_spec.rb +0 -21
  158. data/spec/lang/commands/if_cmd_spec.rb +0 -50
  159. data/spec/lang/commands/ir_al_origen_cmd_spec.rb +0 -16
  160. data/spec/lang/commands/mover_cmd_spec.rb +0 -36
  161. data/spec/lang/commands/poner_cmd_spec.rb +0 -28
  162. data/spec/lang/commands/repeat_with_cmd_spec.rb +0 -60
  163. data/spec/lang/commands/sacar_cmd_spec.rb +0 -35
  164. data/spec/lang/commands/skip_cmd_spec.rb +0 -12
  165. data/spec/lang/commands/vaciar_tablero_cmd_spec.rb +0 -14
  166. data/spec/lang/commands/while_cmd_spec.rb +0 -43
  167. data/spec/lang/literals/colors_spec.rb +0 -13
  168. data/spec/lang/literals/directions_spec.rb +0 -45
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 03e20b75d2bb5c93639777a71d19068ae2b69984
4
- data.tar.gz: fb74916def49acc055a0a028546e0e514b2542cb
2
+ SHA256:
3
+ metadata.gz: eb6a883aa4561c467f14dad8eff3594b5938d90384ff623480b61e68f5c3fdd0
4
+ data.tar.gz: e767e18156efd53dcba54a17c63d8d80dba0067b65d29b71465907e959d495c3
5
5
  SHA512:
6
- metadata.gz: c3f831d15b2ce307ee9f0c5305e51f17ade931bb27b0ca042ea4f8f58316d290cc40966a9b1e76a4baa0e45d791b3a0341fd20e2606f104d965f6741af67ceca
7
- data.tar.gz: 6ffabbf50a90cddd4d4dfa8c814d234307af73b1e70906613df903264d17f89dd5564e4bbdebbdd928edfa34240ad987d4737ad096f77370a32f25c259527353
6
+ metadata.gz: dabb3a15bee6dd1ceb78337f650bf9247b559d43eff596f51ec7d0a13b210627dcf88b4f1398c67d272ca9f26f47fdeee4431d6ef4f5abba8a235e91272ee7c7
7
+ data.tar.gz: 29d5573efe47b2eacc7d1d53e2260ed400e52e68370f44c263c02b08116eb4c70c5d2ff298bb1500ce2df79ed6ebe995f031b4b76b00357880c930368db29395
@@ -0,0 +1,133 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ require:
4
+ - rubocop-rspec
5
+ - test_prof/rubocop
6
+
7
+ AllCops:
8
+ TargetRubyVersion: 2.5.1
9
+ Exclude:
10
+ - 'db/**/*'
11
+
12
+ # revisit this once Ruby 3 is out
13
+ Style/FrozenStringLiteralComment:
14
+ Enabled: false
15
+
16
+ Metrics/BlockNesting:
17
+ Max: 2
18
+
19
+ Metrics/BlockLength:
20
+ CountComments: false
21
+ Max: 25
22
+ Exclude:
23
+ - 'spec/**/*'
24
+
25
+ Layout/LineLength:
26
+ Max: 120
27
+ AllowURI: true
28
+
29
+ Lint/AssignmentInCondition:
30
+ AllowSafeAssignment: true
31
+
32
+ Style/AndOr:
33
+ EnforcedStyle: 'conditionals'
34
+
35
+ Style/CollectionMethods:
36
+ PreferredMethods:
37
+ collect: 'map'
38
+ collect!: 'map!'
39
+ inject: 'reduce'
40
+ detect: 'detect'
41
+ find_all: 'select'
42
+
43
+ Style/WordArray:
44
+ MinSize: 3
45
+
46
+ Style/TrailingCommaInArrayLiteral:
47
+ EnforcedStyleForMultiline: 'comma'
48
+
49
+ Style/TrailingCommaInHashLiteral:
50
+ EnforcedStyleForMultiline: 'comma'
51
+
52
+ Style/TrailingCommaInArguments:
53
+ EnforcedStyleForMultiline: 'comma'
54
+
55
+ Style/HashSyntax:
56
+ EnforcedStyle: 'ruby19'
57
+
58
+ Style/IfUnlessModifier:
59
+ Enabled: false
60
+
61
+ Style/Lambda:
62
+ Enabled: false
63
+
64
+ Style/Alias:
65
+ Enabled: false
66
+
67
+ Style/RedundantInterpolation:
68
+ Enabled: false
69
+
70
+ Style/Next:
71
+ Enabled: false
72
+
73
+ Style/SignalException:
74
+ Enabled: false
75
+
76
+ Style/ZeroLengthPredicate:
77
+ Enabled: false
78
+
79
+ Metrics/ClassLength:
80
+ Enabled: false
81
+
82
+ Metrics/MethodLength:
83
+ Enabled: false
84
+
85
+ Metrics/ModuleLength:
86
+ Enabled: false
87
+
88
+ Style/CommentAnnotation:
89
+ Enabled: false
90
+
91
+ Style/SingleLineBlockParams:
92
+ Enabled: false
93
+
94
+ Style/Documentation:
95
+ Enabled: false
96
+
97
+ Style/RegexpLiteral:
98
+ Enabled: false
99
+
100
+ Layout/HashAlignment:
101
+ Enabled: false
102
+ EnforcedColonStyle: 'key'
103
+ EnforcedHashRocketStyle: 'key'
104
+
105
+ Layout/DotPosition:
106
+ EnforcedStyle: 'trailing'
107
+
108
+ Layout/ParameterAlignment:
109
+ Enabled: false
110
+
111
+ Layout/MultilineMethodCallIndentation:
112
+ Enabled: false
113
+
114
+ Layout/TrailingWhitespace:
115
+ Exclude:
116
+ - 'spec/parser/treetop_parser_spec.rb'
117
+
118
+ RSpec/AggregateFailures:
119
+ Enabled: true
120
+ Include:
121
+ - 'spec/**/*.rb'
122
+
123
+ RSpec/DescribeClass:
124
+ Enabled: false
125
+
126
+ RSpec/ExpectActual:
127
+ Enabled: false
128
+
129
+ RSpec/MultipleExpectations:
130
+ Max: 5
131
+
132
+ RSpec/ExampleLength:
133
+ Max: 10
@@ -0,0 +1,75 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2020-02-04 06:29:14 -0300 using RuboCop version 0.79.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 5
10
+ Metrics/AbcSize:
11
+ Max: 20
12
+
13
+ # Offense count: 1
14
+ # Configuration parameters: CountKeywordArgs.
15
+ Metrics/ParameterLists:
16
+ Max: 6
17
+
18
+ # Offense count: 18
19
+ # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
20
+ # AllowedNames: io, id, to, by, on, in, at, ip, db, os
21
+ Naming/MethodParameterName:
22
+ Exclude:
23
+ - 'lib/gobstones/cli/printer.rb'
24
+ - 'lib/gobstones/runner/board.rb'
25
+
26
+ # Offense count: 4
27
+ # Configuration parameters: NamePrefix, ForbiddenPrefixes, AllowedMethods, MethodDefinitionMacros.
28
+ # NamePrefix: is_, has_, have_
29
+ # ForbiddenPrefixes: is_, has_, have_
30
+ # AllowedMethods: is_a?
31
+ # MethodDefinitionMacros: define_method, define_singleton_method
32
+ Naming/PredicateName:
33
+ Exclude:
34
+ - 'spec/**/*'
35
+ - 'lib/gobstones/lang/expressions/expression.rb'
36
+ - 'lib/gobstones/lang/expressions/function_call.rb'
37
+ - 'lib/gobstones/runner/execution_context.rb'
38
+
39
+ # Offense count: 10
40
+ # Configuration parameters: EnforcedStyle.
41
+ # SupportedStyles: snake_case, normalcase, non_integer
42
+ Naming/VariableNumber:
43
+ Exclude:
44
+ - 'spec/lang/expressions/arithmetic_expressions_spec.rb'
45
+ - 'spec/parser/gobstones_program_spec.rb'
46
+
47
+ # Offense count: 2
48
+ # Configuration parameters: Prefixes.
49
+ # Prefixes: when, with, without
50
+ RSpec/ContextWording:
51
+ Exclude:
52
+ - 'spec/runner/head_spec.rb'
53
+
54
+ # Offense count: 19
55
+ RSpec/DescribeMethod:
56
+ Enabled: false
57
+
58
+ # Offense count: 5
59
+ # Configuration parameters: Max.
60
+ RSpec/ExampleLength:
61
+ Exclude:
62
+ - 'spec/lang/commands/procedure_call_spec.rb'
63
+ - 'spec/parser/gobstones_program_spec.rb'
64
+ - 'spec/parser/treetop_parser_spec.rb'
65
+
66
+ # Offense count: 20
67
+ # Configuration parameters: CustomTransform, IgnoreMethods.
68
+ RSpec/FilePath:
69
+ Enabled: false
70
+
71
+ # Offense count: 7
72
+ Style/MixinUsage:
73
+ Exclude:
74
+ - 'lib/gobstones/cli/runner.rb'
75
+ - 'spec/spec_helper.rb'
data/.simplecov CHANGED
@@ -1,3 +1 @@
1
- SimpleCov.start do
2
- add_filter '/spec/'
3
- end if ENV['COVERAGE']
1
+ SimpleCov.start { add_filter '/spec/' } if ENV['COVERAGE']
@@ -0,0 +1 @@
1
+ ruby 2.7.0
@@ -1,4 +1,11 @@
1
1
  language: ruby
2
+ sudo: false
2
3
  rvm:
3
- - 2.2.0
4
- - 1.9.3
4
+ - 2.7.0
5
+ before_install:
6
+ - gem install bundler:2.1.4
7
+ install:
8
+ - bundle install --jobs=3 --retry=3
9
+ script:
10
+ - bundle exec rubocop
11
+ - bundle exec rake spec
data/Gemfile CHANGED
@@ -1,12 +1,18 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'treetop', '~> 1.4'
4
- gem 'rake', '~> 10.4'
3
+ gem 'coveralls', '~> 0.8', require: false
4
+ gem 'error_handling_protocol', '~> 0.0.1'
5
+ gem 'rake', '~> 13'
6
+ gem 'treetop', '~> 1.6'
5
7
 
6
8
  group :test do
7
9
  gem 'autotest-standalone', '~> 4.5'
8
- gem 'rspec', '~> 3.1'
9
- gem 'simplecov', '~> 0.7', :require => false
10
+ gem 'rspec', '~> 3.9'
11
+ gem 'simplecov', '~> 0.16', require: false
12
+ gem 'test-prof', '~> 0.10'
10
13
  end
11
14
 
12
- gem 'coveralls', '~> 0.7', :require => false
15
+ group :development do
16
+ gem 'rubocop', '~> 0.78', require: false
17
+ gem 'rubocop-rspec', '~> 1.37', require: false
18
+ end
@@ -1,52 +1,78 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
+ ast (2.4.0)
4
5
  autotest-standalone (4.5.11)
5
- coveralls (0.7.2)
6
- multi_json (~> 1.3)
7
- rest-client (= 1.6.7)
8
- simplecov (>= 0.7)
9
- term-ansicolor (= 1.2.2)
10
- thor (= 0.18.1)
11
- diff-lcs (1.2.5)
12
- docile (1.1.5)
13
- mime-types (2.4.3)
14
- multi_json (1.10.1)
6
+ coveralls (0.8.23)
7
+ json (>= 1.8, < 3)
8
+ simplecov (~> 0.16.1)
9
+ term-ansicolor (~> 1.3)
10
+ thor (>= 0.19.4, < 2.0)
11
+ tins (~> 1.6)
12
+ diff-lcs (1.3)
13
+ docile (1.3.2)
14
+ error_handling_protocol (0.0.1)
15
+ jaro_winkler (1.5.4)
16
+ json (2.3.0)
17
+ parallel (1.19.1)
18
+ parser (2.7.0.2)
19
+ ast (~> 2.4.0)
15
20
  polyglot (0.3.5)
16
- rake (10.4.2)
17
- rest-client (1.6.7)
18
- mime-types (>= 1.16)
19
- rspec (3.1.0)
20
- rspec-core (~> 3.1.0)
21
- rspec-expectations (~> 3.1.0)
22
- rspec-mocks (~> 3.1.0)
23
- rspec-core (3.1.7)
24
- rspec-support (~> 3.1.0)
25
- rspec-expectations (3.1.2)
21
+ rainbow (3.0.0)
22
+ rake (13.0.1)
23
+ rspec (3.9.0)
24
+ rspec-core (~> 3.9.0)
25
+ rspec-expectations (~> 3.9.0)
26
+ rspec-mocks (~> 3.9.0)
27
+ rspec-core (3.9.1)
28
+ rspec-support (~> 3.9.1)
29
+ rspec-expectations (3.9.0)
26
30
  diff-lcs (>= 1.2.0, < 2.0)
27
- rspec-support (~> 3.1.0)
28
- rspec-mocks (3.1.3)
29
- rspec-support (~> 3.1.0)
30
- rspec-support (3.1.2)
31
- simplecov (0.9.1)
32
- docile (~> 1.1.0)
33
- multi_json (~> 1.0)
34
- simplecov-html (~> 0.8.0)
35
- simplecov-html (0.8.0)
36
- term-ansicolor (1.2.2)
37
- tins (~> 0.8)
38
- thor (0.18.1)
39
- tins (0.13.2)
40
- treetop (1.5.3)
31
+ rspec-support (~> 3.9.0)
32
+ rspec-mocks (3.9.1)
33
+ diff-lcs (>= 1.2.0, < 2.0)
34
+ rspec-support (~> 3.9.0)
35
+ rspec-support (3.9.2)
36
+ rubocop (0.79.0)
37
+ jaro_winkler (~> 1.5.1)
38
+ parallel (~> 1.10)
39
+ parser (>= 2.7.0.1)
40
+ rainbow (>= 2.2.2, < 4.0)
41
+ ruby-progressbar (~> 1.7)
42
+ unicode-display_width (>= 1.4.0, < 1.7)
43
+ rubocop-rspec (1.37.1)
44
+ rubocop (>= 0.68.1)
45
+ ruby-progressbar (1.10.1)
46
+ simplecov (0.16.1)
47
+ docile (~> 1.1)
48
+ json (>= 1.8, < 3)
49
+ simplecov-html (~> 0.10.0)
50
+ simplecov-html (0.10.2)
51
+ sync (0.5.0)
52
+ term-ansicolor (1.7.1)
53
+ tins (~> 1.0)
54
+ test-prof (0.10.2)
55
+ thor (1.0.1)
56
+ tins (1.24.0)
57
+ sync
58
+ treetop (1.6.10)
41
59
  polyglot (~> 0.3)
60
+ unicode-display_width (1.6.1)
42
61
 
43
62
  PLATFORMS
44
63
  ruby
45
64
 
46
65
  DEPENDENCIES
47
66
  autotest-standalone (~> 4.5)
48
- coveralls (~> 0.7)
49
- rake (~> 10.4)
50
- rspec (~> 3.1)
51
- simplecov (~> 0.7)
52
- treetop (~> 1.4)
67
+ coveralls (~> 0.8)
68
+ error_handling_protocol (~> 0.0.1)
69
+ rake (~> 13)
70
+ rspec (~> 3.9)
71
+ rubocop (~> 0.78)
72
+ rubocop-rspec (~> 1.37)
73
+ simplecov (~> 0.16)
74
+ test-prof (~> 0.10)
75
+ treetop (~> 1.6)
76
+
77
+ BUNDLED WITH
78
+ 2.1.4
data/README.md CHANGED
@@ -1,7 +1,6 @@
1
1
  ## gobstones-rb
2
2
 
3
3
  [![Build Status](https://travis-ci.org/ngarbezza/gobstones-rb.png?branch=master)](https://travis-ci.org/ngarbezza/gobstones-rb)
4
- [![Dependency Status](https://gemnasium.com/ngarbezza/gobstones-rb.png)](https://gemnasium.com/ngarbezza/gobstones-rb)
5
4
  [![Coverage Status](https://coveralls.io/repos/ngarbezza/gobstones-rb/badge.png?branch=master)](https://coveralls.io/r/ngarbezza/gobstones-rb?branch=master)
6
5
  [![Code Climate](https://codeclimate.com/github/ngarbezza/gobstones-rb.png)](https://codeclimate.com/github/ngarbezza/gobstones-rb)
7
6
 
@@ -15,3 +14,11 @@ abstractions for algorithmic problem solving.
15
14
  ## Status
16
15
 
17
16
  In progress
17
+
18
+ ## Usage
19
+
20
+ `gem install gobstones`
21
+
22
+ Then run any valid `.gbs` program using the `gobstones` binary:
23
+
24
+ `gobstones my_program.gbs`
data/Rakefile CHANGED
@@ -1,4 +1,4 @@
1
1
  require 'rspec/core/rake_task'
2
2
  RSpec::Core::RakeTask.new('spec')
3
3
 
4
- task :default => :spec
4
+ task default: :spec
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift File.dirname(__FILE__) + '/lib'
3
+ $LOAD_PATH.unshift File.dirname(__FILE__) + '/lib'
4
4
 
5
5
  require 'gobstones/cli/runner'
6
6
 
@@ -1,24 +1,25 @@
1
- lib = File.expand_path '../lib/', __FILE__
2
- $:.unshift lib unless $:.include?(lib)
1
+ lib = File.expand_path 'lib', __dir__
2
+ $LOAD_PATH.unshift lib unless $LOAD_PATH.include?(lib)
3
3
 
4
4
  Gem::Specification.new do |spec|
5
5
  spec.name = 'gobstones'
6
- spec.version = '0.0.2'
6
+ spec.version = '0.0.3'
7
7
  spec.licenses = ['GPLv3']
8
8
  spec.authors = ['Nahuel Garbezza']
9
9
  spec.email = ['n.garbezza@gmail.com']
10
- spec.homepage = 'http://nahuelgarbezza.com.ar/gobstones-rb/'
11
- spec.summary = %q{Ruby implementation of the Gobstones programming language}
12
- spec.description = %q{Ruby implementation of the Gobstones programming language}
10
+ spec.homepage = 'https://github.com/ngarbezza/gobstones-rb'
11
+ spec.summary = 'Ruby implementation of the Gobstones programming language'
12
+ spec.description = 'Ruby implementation of the Gobstones programming language'
13
13
 
14
- spec.required_ruby_version = '>= 1.9.3'
15
- spec.required_rubygems_version = '>= 1.3.6'
14
+ spec.required_ruby_version = '>= 2.5.1'
15
+ spec.required_rubygems_version = '>= 2.7.6'
16
16
 
17
17
  spec.add_development_dependency 'rspec', '~> 3'
18
+ spec.add_dependency 'treetop', '~> 1.6'
18
19
 
19
- spec.files = `git ls-files`.split $/
20
+ spec.files = `git ls-files`.split $INPUT_RECORD_SEPARATOR
20
21
  spec.test_files = spec.files.grep %r{^spec/}
21
22
 
22
- spec.executables = %w(gobstones)
23
- spec.require_paths = %w(lib)
23
+ spec.executables = %w[gobstones]
24
+ spec.require_paths = %w[lib]
24
25
  end