cucumber-core 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: