Module: CucumberFactory::Factory
- Defined in:
- lib/cucumber_factory/factory.rb
Defined Under Namespace
Classes: Error
Constant Summary collapse
- ATTRIBUTES_PATTERN =
… with the year 1979 which is science fiction
'( with the .+?)?( (?:which|who|that) is .+?)?'
- TEXT_ATTRIBUTES_PATTERN =
' (?:with|and) these attributes:'
- UPDATE_ATTR_PATTERN =
… belongs to the collection “Fantasy” and is trending
'(?: (?:has|belongs to)( the .+?)|(?: and| but|,)*( is .+?))'
- TEXT_UPDATE_ATTR_PATTERN =
'(?: and|,)* has these attributes:'
- RECORD_PATTERN =
Given there is a movie (comedy)
'there is an? (.+?)( \(.+?\))?'
- NAMED_RECORD_PATTERN =
Given “LotR” is a movie
'(?:"([^\"]*)"|\'([^\']*)\') is an? (.+?)( \(.+?\))?'
- RECORD_UPDATE_PATTERN =
Given the movie “LotR” …
'the ([^"\',]+?) (above|".+?"|\'.+?\')'
- NAMED_RECORDS_VARIABLE =
:'@named_cucumber_factory_records'
- VALUE_INTEGER =
/\d+/
- VALUE_DECIMAL =
/[\d\.]+/
- VALUE_STRING =
/"[^"]*"|'[^']*'/
- VALUE_FILE =
/file:#{VALUE_STRING}/
- VALUE_ARRAY =
/\[[^\]]*\]/
- VALUE_LAST_RECORD =
/\babove\b/
- VALUE_SCALAR =
/#{VALUE_STRING}|#{VALUE_DECIMAL}|#{VALUE_INTEGER}|#{VALUE_FILE}/
- CLEAR_NAMED_RECORDS_STEP_DESCRIPTOR =
{ :kind => :Before, :block => proc { CucumberFactory::Factory.send(:reset_named_records, self) } }
- NAMED_CREATION_STEP_DESCRIPTOR =
We cannot use vararg blocks in the descriptors in Ruby 1.8, as explained by Aslak: www.ruby-forum.com/topic/182927. We use different descriptors and cucumber priority to work around it.
{ :kind => :Given, :pattern => /^#{NAMED_RECORD_PATTERN}#{ATTRIBUTES_PATTERN}?$/, :block => lambda { |a1, a2, a3, a4, a5, a6| CucumberFactory::Factory.send(:parse_named_creation, self, a1, a2, a3, a4, a5, a6) } }
- CREATION_STEP_DESCRIPTOR =
{ :kind => :Given, :pattern => /^#{RECORD_PATTERN}#{ATTRIBUTES_PATTERN}$/, :block => lambda { |a1, a2, a3, a4| CucumberFactory::Factory.send(:parse_creation, self, a1, a2, a3, a4) } }
- UPDATE_STEP_DESCRIPTOR =
{ :kind => :And, :pattern => /^#{RECORD_UPDATE_PATTERN}#{UPDATE_ATTR_PATTERN}+$/, :block => lambda { |a1, a2, a3, a4| CucumberFactory::Factory.send(:parse_update, self, a1, a2, a3, a4) } }
- NAMED_CREATION_STEP_DESCRIPTOR_WITH_TEXT_ATTRIBUTES =
{ :kind => :Given, :pattern => /^#{NAMED_RECORD_PATTERN}#{ATTRIBUTES_PATTERN}#{TEXT_ATTRIBUTES_PATTERN}?$/, :block => lambda { |a1, a2, a3, a4, a5, a6, a7| CucumberFactory::Factory.send(:parse_named_creation, self, a1, a2, a3, a4, a5, a6, a7) }, :priority => true }
- CREATION_STEP_DESCRIPTOR_WITH_TEXT_ATTRIBUTES =
{ :kind => :Given, :pattern => /^#{RECORD_PATTERN}#{ATTRIBUTES_PATTERN}#{TEXT_ATTRIBUTES_PATTERN}$/, :block => lambda { |a1, a2, a3, a4, a5| CucumberFactory::Factory.send(:parse_creation, self, a1, a2, a3, a4, a5) }, :priority => true }
- UPDATE_STEP_DESCRIPTOR_WITH_TEXT_ATTRIBUTES =
{ :kind => :And, :pattern => /^#{RECORD_UPDATE_PATTERN}#{UPDATE_ATTR_PATTERN}*#{TEXT_UPDATE_ATTR_PATTERN}$/, :block => lambda { |a1, a2, a3, a4, a5| CucumberFactory::Factory.send(:parse_update, self, a1, a2, a3, a4, a5) }, :priority => true }
Class Method Summary collapse
Class Method Details
.add_steps(main) ⇒ Object
75 76 77 78 79 80 81 82 83 |
# File 'lib/cucumber_factory/factory.rb', line 75 def add_steps(main) add_step(main, CREATION_STEP_DESCRIPTOR) add_step(main, NAMED_CREATION_STEP_DESCRIPTOR) add_step(main, CREATION_STEP_DESCRIPTOR_WITH_TEXT_ATTRIBUTES) add_step(main, NAMED_CREATION_STEP_DESCRIPTOR_WITH_TEXT_ATTRIBUTES) add_step(main, CLEAR_NAMED_RECORDS_STEP_DESCRIPTOR) add_step(main, UPDATE_STEP_DESCRIPTOR) add_step(main, UPDATE_STEP_DESCRIPTOR_WITH_TEXT_ATTRIBUTES) end |