Class: Gherkin::Formatter::FilterFormatter
- Inherits:
-
Object
- Object
- Gherkin::Formatter::FilterFormatter
- Defined in:
- lib/gherkin/formatter/filter_formatter.rb
Instance Method Summary collapse
- #background(background) ⇒ Object
- #done ⇒ Object
- #eof ⇒ Object
- #examples(examples) ⇒ Object
- #feature(feature) ⇒ Object
-
#initialize(formatter, filters) ⇒ FilterFormatter
constructor
A new instance of FilterFormatter.
- #scenario(scenario) ⇒ Object
- #scenario_outline(scenario_outline) ⇒ Object
- #step(step) ⇒ Object
- #uri(uri) ⇒ Object
Constructor Details
#initialize(formatter, filters) ⇒ FilterFormatter
Returns a new instance of FilterFormatter.
13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/gherkin/formatter/filter_formatter.rb', line 13 def initialize(formatter, filters) @formatter = formatter @filter = detect_filter(filters) @feature_tags = [] @feature_element_tags = [] @examples_tags = [] @feature_events = [] @background_events = [] @feature_element_events = [] @examples_events = [] end |
Instance Method Details
#background(background) ⇒ Object
37 38 39 40 41 |
# File 'lib/gherkin/formatter/filter_formatter.rb', line 37 def background(background) @feature_element_name = background.name @feature_element_range = background.line_range @background_events = [background] end |
#done ⇒ Object
92 93 94 |
# File 'lib/gherkin/formatter/filter_formatter.rb', line 92 def done @formatter.done end |
#eof ⇒ Object
87 88 89 90 |
# File 'lib/gherkin/formatter/filter_formatter.rb', line 87 def eof replay! @formatter.eof end |
#examples(examples) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/gherkin/formatter/filter_formatter.rb', line 59 def examples(examples) replay! @examples_tags = examples. @examples_name = examples.name table_body_range = case(examples.rows.length) when 0 then examples.line_range.last..examples.line_range.last when 1 then examples.rows[0].line..examples.rows[0].line else examples.rows[1].line..examples.rows[-1].line end @examples_range = examples.line_range.first..table_body_range.last if(@filter.eval([], [], [table_body_range])) examples.rows = @filter.filter_table_body_rows(examples.rows) end @examples_events = [examples] end |
#feature(feature) ⇒ Object
31 32 33 34 35 |
# File 'lib/gherkin/formatter/filter_formatter.rb', line 31 def feature(feature) @feature_tags = feature. @feature_name = feature.name @feature_events = [feature] end |
#scenario(scenario) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/gherkin/formatter/filter_formatter.rb', line 43 def scenario(scenario) replay! @feature_element_tags = scenario. @feature_element_name = scenario.name @feature_element_range = scenario.line_range @feature_element_events = [scenario] end |
#scenario_outline(scenario_outline) ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/gherkin/formatter/filter_formatter.rb', line 51 def scenario_outline(scenario_outline) replay! @feature_element_tags = scenario_outline. @feature_element_name = scenario_outline.name @feature_element_range = scenario_outline.line_range @feature_element_events = [scenario_outline] end |
#step(step) ⇒ Object
77 78 79 80 81 82 83 84 85 |
# File 'lib/gherkin/formatter/filter_formatter.rb', line 77 def step(step) if @feature_element_events.any? @feature_element_events << step else @background_events << step end @feature_element_range = @feature_element_range.first..step.line_range.last end |
#uri(uri) ⇒ Object
27 28 29 |
# File 'lib/gherkin/formatter/filter_formatter.rb', line 27 def uri(uri) @formatter.uri(uri) end |