cucumber-core 0.1.0

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.
Files changed (69) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.rspec +1 -0
  4. data/.ruby-gemset +1 -0
  5. data/.travis.yml +16 -0
  6. data/Gemfile +2 -0
  7. data/LICENSE +20 -0
  8. data/README.md +9 -0
  9. data/Rakefile +24 -0
  10. data/cucumber-core.gemspec +32 -0
  11. data/lib/cucumber/core.rb +37 -0
  12. data/lib/cucumber/core/ast.rb +13 -0
  13. data/lib/cucumber/core/ast/background.rb +33 -0
  14. data/lib/cucumber/core/ast/comment.rb +17 -0
  15. data/lib/cucumber/core/ast/data_table.rb +326 -0
  16. data/lib/cucumber/core/ast/describes_itself.rb +16 -0
  17. data/lib/cucumber/core/ast/doc_string.rb +83 -0
  18. data/lib/cucumber/core/ast/empty_background.rb +12 -0
  19. data/lib/cucumber/core/ast/examples_table.rb +95 -0
  20. data/lib/cucumber/core/ast/feature.rb +62 -0
  21. data/lib/cucumber/core/ast/location.rb +140 -0
  22. data/lib/cucumber/core/ast/multiline_argument.rb +33 -0
  23. data/lib/cucumber/core/ast/names.rb +19 -0
  24. data/lib/cucumber/core/ast/outline_step.rb +51 -0
  25. data/lib/cucumber/core/ast/scenario.rb +43 -0
  26. data/lib/cucumber/core/ast/scenario_outline.rb +44 -0
  27. data/lib/cucumber/core/ast/step.rb +38 -0
  28. data/lib/cucumber/core/ast/tag.rb +14 -0
  29. data/lib/cucumber/core/compiler.rb +136 -0
  30. data/lib/cucumber/core/gherkin/ast_builder.rb +315 -0
  31. data/lib/cucumber/core/gherkin/document.rb +20 -0
  32. data/lib/cucumber/core/gherkin/parser.rb +45 -0
  33. data/lib/cucumber/core/gherkin/writer.rb +220 -0
  34. data/lib/cucumber/core/gherkin/writer/helpers.rb +178 -0
  35. data/lib/cucumber/core/platform.rb +30 -0
  36. data/lib/cucumber/core/test/case.rb +143 -0
  37. data/lib/cucumber/core/test/filters.rb +48 -0
  38. data/lib/cucumber/core/test/filters/tag_filter.rb +110 -0
  39. data/lib/cucumber/core/test/hook_compiler.rb +109 -0
  40. data/lib/cucumber/core/test/mapper.rb +56 -0
  41. data/lib/cucumber/core/test/mapping.rb +67 -0
  42. data/lib/cucumber/core/test/result.rb +191 -0
  43. data/lib/cucumber/core/test/runner.rb +149 -0
  44. data/lib/cucumber/core/test/step.rb +69 -0
  45. data/lib/cucumber/core/test/timer.rb +31 -0
  46. data/lib/cucumber/core/version.rb +9 -0
  47. data/lib/cucumber/initializer.rb +18 -0
  48. data/spec/capture_warnings.rb +68 -0
  49. data/spec/coverage.rb +10 -0
  50. data/spec/cucumber/core/ast/data_table_spec.rb +139 -0
  51. data/spec/cucumber/core/ast/doc_string_spec.rb +77 -0
  52. data/spec/cucumber/core/ast/examples_table_spec.rb +87 -0
  53. data/spec/cucumber/core/ast/location_spec.rb +105 -0
  54. data/spec/cucumber/core/ast/outline_step_spec.rb +77 -0
  55. data/spec/cucumber/core/ast/step_spec.rb +44 -0
  56. data/spec/cucumber/core/compiler_spec.rb +249 -0
  57. data/spec/cucumber/core/gherkin/parser_spec.rb +182 -0
  58. data/spec/cucumber/core/gherkin/writer_spec.rb +332 -0
  59. data/spec/cucumber/core/test/case_spec.rb +416 -0
  60. data/spec/cucumber/core/test/hook_compiler_spec.rb +78 -0
  61. data/spec/cucumber/core/test/mapper_spec.rb +68 -0
  62. data/spec/cucumber/core/test/mapping_spec.rb +103 -0
  63. data/spec/cucumber/core/test/result_spec.rb +178 -0
  64. data/spec/cucumber/core/test/runner_spec.rb +265 -0
  65. data/spec/cucumber/core/test/step_spec.rb +58 -0
  66. data/spec/cucumber/core/test/timer_spec.rb +13 -0
  67. data/spec/cucumber/core_spec.rb +419 -0
  68. data/spec/cucumber/initializer_spec.rb +49 -0
  69. metadata +221 -0
@@ -0,0 +1,49 @@
1
+ require 'cucumber/initializer'
2
+
3
+ module Cucumber
4
+ describe 'generating initializers' do
5
+ class Book
6
+ include Cucumber.initializer(:title, :author)
7
+
8
+ def description
9
+ "#{title} by #{author}"
10
+ end
11
+
12
+ def upcase!
13
+ @title.upcase!
14
+ @author.upcase!
15
+ end
16
+ end
17
+
18
+ let(:cucumber_book) { Book.new('The Cucumber Book', 'Matt Wynne') }
19
+
20
+ it 'raises an ArgumentError when initialized with the wrong number of arguments' do
21
+ expect { Book.new() }.to raise_error(ArgumentError, 'wrong number of arguments (0 for 2)')
22
+ end
23
+
24
+ it 'creates a private reader for the attributes' do
25
+ expect { cucumber_book.title }.to raise_error NoMethodError
26
+ expect { cucumber_book.author }.to raise_error NoMethodError
27
+ end
28
+
29
+ it 'creates readers for the attributes' do
30
+ expect( cucumber_book.description ).to eq 'The Cucumber Book by Matt Wynne'
31
+ end
32
+
33
+ it 'creates instance variables for the attributes' do
34
+ cucumber_book.upcase!
35
+ expect( cucumber_book.description ).to eq 'THE CUCUMBER BOOK by MATT WYNNE'
36
+ end
37
+
38
+ context 'with an overridden reader' do
39
+ class Score
40
+ include Cucumber.initializer(:score)
41
+ attr_reader :score
42
+ end
43
+
44
+ it 'makes the reader public' do
45
+ expect { Score.new(12).score }.to_not raise_error
46
+ end
47
+ end
48
+ end
49
+ end
metadata ADDED
@@ -0,0 +1,221 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cucumber-core
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Aslak Hellesøy
8
+ - Matt Wynne
9
+ - Steve Tooke
10
+ - Oleg Sukhodolsky
11
+ - Tom Brand
12
+ autorequire:
13
+ bindir: bin
14
+ cert_chain: []
15
+ date: 2014-02-12 00:00:00.000000000 Z
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
+ name: gherkin
19
+ requirement: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ~>
22
+ - !ruby/object:Gem::Version
23
+ version: 2.12.0
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: 2.12.0
31
+ - !ruby/object:Gem::Dependency
32
+ name: bundler
33
+ requirement: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - '>='
36
+ - !ruby/object:Gem::Version
37
+ version: 1.3.5
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - '>='
43
+ - !ruby/object:Gem::Version
44
+ version: 1.3.5
45
+ - !ruby/object:Gem::Dependency
46
+ name: rake
47
+ requirement: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - '>='
50
+ - !ruby/object:Gem::Version
51
+ version: 0.9.2
52
+ type: :development
53
+ prerelease: false
54
+ version_requirements: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - '>='
57
+ - !ruby/object:Gem::Version
58
+ version: 0.9.2
59
+ - !ruby/object:Gem::Dependency
60
+ name: rspec
61
+ requirement: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '2.13'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - '>='
71
+ - !ruby/object:Gem::Version
72
+ version: '2.13'
73
+ - !ruby/object:Gem::Dependency
74
+ name: unindent
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '1.0'
80
+ type: :development
81
+ prerelease: false
82
+ version_requirements: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '1.0'
87
+ - !ruby/object:Gem::Dependency
88
+ name: coveralls
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: '0.7'
94
+ type: :development
95
+ prerelease: false
96
+ version_requirements: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ~>
99
+ - !ruby/object:Gem::Version
100
+ version: '0.7'
101
+ description: Core library for the Cucumber BDD app
102
+ email: cukes@googlegroups.com
103
+ executables: []
104
+ extensions: []
105
+ extra_rdoc_files: []
106
+ files:
107
+ - .coveralls.yml
108
+ - .rspec
109
+ - .ruby-gemset
110
+ - .travis.yml
111
+ - Gemfile
112
+ - LICENSE
113
+ - README.md
114
+ - Rakefile
115
+ - cucumber-core.gemspec
116
+ - lib/cucumber/core.rb
117
+ - lib/cucumber/core/ast.rb
118
+ - lib/cucumber/core/ast/background.rb
119
+ - lib/cucumber/core/ast/comment.rb
120
+ - lib/cucumber/core/ast/data_table.rb
121
+ - lib/cucumber/core/ast/describes_itself.rb
122
+ - lib/cucumber/core/ast/doc_string.rb
123
+ - lib/cucumber/core/ast/empty_background.rb
124
+ - lib/cucumber/core/ast/examples_table.rb
125
+ - lib/cucumber/core/ast/feature.rb
126
+ - lib/cucumber/core/ast/location.rb
127
+ - lib/cucumber/core/ast/multiline_argument.rb
128
+ - lib/cucumber/core/ast/names.rb
129
+ - lib/cucumber/core/ast/outline_step.rb
130
+ - lib/cucumber/core/ast/scenario.rb
131
+ - lib/cucumber/core/ast/scenario_outline.rb
132
+ - lib/cucumber/core/ast/step.rb
133
+ - lib/cucumber/core/ast/tag.rb
134
+ - lib/cucumber/core/compiler.rb
135
+ - lib/cucumber/core/gherkin/ast_builder.rb
136
+ - lib/cucumber/core/gherkin/document.rb
137
+ - lib/cucumber/core/gherkin/parser.rb
138
+ - lib/cucumber/core/gherkin/writer.rb
139
+ - lib/cucumber/core/gherkin/writer/helpers.rb
140
+ - lib/cucumber/core/platform.rb
141
+ - lib/cucumber/core/test/case.rb
142
+ - lib/cucumber/core/test/filters.rb
143
+ - lib/cucumber/core/test/filters/tag_filter.rb
144
+ - lib/cucumber/core/test/hook_compiler.rb
145
+ - lib/cucumber/core/test/mapper.rb
146
+ - lib/cucumber/core/test/mapping.rb
147
+ - lib/cucumber/core/test/result.rb
148
+ - lib/cucumber/core/test/runner.rb
149
+ - lib/cucumber/core/test/step.rb
150
+ - lib/cucumber/core/test/timer.rb
151
+ - lib/cucumber/core/version.rb
152
+ - lib/cucumber/initializer.rb
153
+ - spec/capture_warnings.rb
154
+ - spec/coverage.rb
155
+ - spec/cucumber/core/ast/data_table_spec.rb
156
+ - spec/cucumber/core/ast/doc_string_spec.rb
157
+ - spec/cucumber/core/ast/examples_table_spec.rb
158
+ - spec/cucumber/core/ast/location_spec.rb
159
+ - spec/cucumber/core/ast/outline_step_spec.rb
160
+ - spec/cucumber/core/ast/step_spec.rb
161
+ - spec/cucumber/core/compiler_spec.rb
162
+ - spec/cucumber/core/gherkin/parser_spec.rb
163
+ - spec/cucumber/core/gherkin/writer_spec.rb
164
+ - spec/cucumber/core/test/case_spec.rb
165
+ - spec/cucumber/core/test/hook_compiler_spec.rb
166
+ - spec/cucumber/core/test/mapper_spec.rb
167
+ - spec/cucumber/core/test/mapping_spec.rb
168
+ - spec/cucumber/core/test/result_spec.rb
169
+ - spec/cucumber/core/test/runner_spec.rb
170
+ - spec/cucumber/core/test/step_spec.rb
171
+ - spec/cucumber/core/test/timer_spec.rb
172
+ - spec/cucumber/core_spec.rb
173
+ - spec/cucumber/initializer_spec.rb
174
+ homepage: http://cukes.info
175
+ licenses:
176
+ - MIT
177
+ metadata: {}
178
+ post_install_message:
179
+ rdoc_options:
180
+ - --charset=UTF-8
181
+ require_paths:
182
+ - lib
183
+ required_ruby_version: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - '>='
186
+ - !ruby/object:Gem::Version
187
+ version: 1.9.3
188
+ required_rubygems_version: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - '>='
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ requirements: []
194
+ rubyforge_project:
195
+ rubygems_version: 2.2.1
196
+ signing_key:
197
+ specification_version: 4
198
+ summary: cucumber-core-0.1.0
199
+ test_files:
200
+ - spec/capture_warnings.rb
201
+ - spec/coverage.rb
202
+ - spec/cucumber/core/ast/data_table_spec.rb
203
+ - spec/cucumber/core/ast/doc_string_spec.rb
204
+ - spec/cucumber/core/ast/examples_table_spec.rb
205
+ - spec/cucumber/core/ast/location_spec.rb
206
+ - spec/cucumber/core/ast/outline_step_spec.rb
207
+ - spec/cucumber/core/ast/step_spec.rb
208
+ - spec/cucumber/core/compiler_spec.rb
209
+ - spec/cucumber/core/gherkin/parser_spec.rb
210
+ - spec/cucumber/core/gherkin/writer_spec.rb
211
+ - spec/cucumber/core/test/case_spec.rb
212
+ - spec/cucumber/core/test/hook_compiler_spec.rb
213
+ - spec/cucumber/core/test/mapper_spec.rb
214
+ - spec/cucumber/core/test/mapping_spec.rb
215
+ - spec/cucumber/core/test/result_spec.rb
216
+ - spec/cucumber/core/test/runner_spec.rb
217
+ - spec/cucumber/core/test/step_spec.rb
218
+ - spec/cucumber/core/test/timer_spec.rb
219
+ - spec/cucumber/core_spec.rb
220
+ - spec/cucumber/initializer_spec.rb
221
+ has_rdoc: