Class: YARD::CodeObjects::StepTransformerObject
- Inherits:
-
Base
- Object
- Base
- YARD::CodeObjects::StepTransformerObject
- Includes:
- Cucumber::LocationHelper
- Defined in:
- lib/yard/code_objects/step_transformer.rb
Direct Known Subclasses
Constant Summary collapse
- ESCAPE_PATTERN =
Note:
this does not handle the result of method calls
Note:this does not handle multiple constants within the same escaped area
This defines an escape pattern within a string or regex:
/^the first #{CONSTANT} step$/
This is used below in the value to process it if there happen to be constants defined here.
/#\{\s*(\w+)\s*\}/
Instance Attribute Summary collapse
-
#constants ⇒ Object
readonly
Returns the value of attribute constants.
-
#keyword ⇒ Object
readonly
Returns the value of attribute keyword.
-
#literal_value ⇒ Object
readonly
Returns the value of attribute literal_value.
-
#source ⇒ Object
readonly
Returns the value of attribute source.
-
#steps ⇒ Object
Returns the value of attribute steps.
-
#value ⇒ Object
When requesting a step tranformer object value, process it, it it hasn’t alredy been processed, replacing any constants that may be lurking within the value.
Instance Method Summary collapse
-
#constants_from_value(data = @value) ⇒ Object
Look through the specified data for the escape pattern and return an array of those constants found.
-
#regex ⇒ Object
Generate a regex with the step transformers value.
Methods included from Cucumber::LocationHelper
#file, #line_number, #location
Instance Attribute Details
#constants ⇒ Object (readonly)
Returns the value of attribute constants.
8 9 10 |
# File 'lib/yard/code_objects/step_transformer.rb', line 8 def constants @constants end |
#keyword ⇒ Object (readonly)
Returns the value of attribute keyword.
8 9 10 |
# File 'lib/yard/code_objects/step_transformer.rb', line 8 def keyword @keyword end |
#literal_value ⇒ Object (readonly)
Returns the value of attribute literal_value.
8 9 10 |
# File 'lib/yard/code_objects/step_transformer.rb', line 8 def literal_value @literal_value end |
#source ⇒ Object (readonly)
Returns the value of attribute source.
8 9 10 |
# File 'lib/yard/code_objects/step_transformer.rb', line 8 def source @source end |
#steps ⇒ Object
Returns the value of attribute steps.
9 10 11 |
# File 'lib/yard/code_objects/step_transformer.rb', line 9 def steps @steps end |
#value ⇒ Object
When requesting a step tranformer object value, process it, it it hasn’t alredy been processed, replacing any constants that may be lurking within the value.
Processing it means looking for any escaped characters that happen to be CONSTANTS that could be matched and then replaced. This is done recursively as CONSTANTS can be defined with more CONSTANTS.
31 32 33 |
# File 'lib/yard/code_objects/step_transformer.rb', line 31 def value @value end |
Instance Method Details
#constants_from_value(data = @value) ⇒ Object
Look through the specified data for the escape pattern and return an array of those constants found. This defaults to the @value within step transformer as it is used internally, however, it can be called externally if it’s needed somewhere.
68 69 70 |
# File 'lib/yard/code_objects/step_transformer.rb', line 68 def constants_from_value(data=@value) data.scan(ESCAPE_PATTERN).flatten.collect { |value| value.strip } end |
#regex ⇒ Object
Generate a regex with the step transformers value
60 61 62 |
# File 'lib/yard/code_objects/step_transformer.rb', line 60 def regex @regex ||= /#{strip_regex_from(value)}/ end |