Object
# File lib/gherkin/formatter/filter_formatter.rb, line 13 13: def initialize(formatter, filters) 14: @formatter = formatter 15: @filter = detect_filter(filters) 16: 17: @feature_tags = [] 18: @feature_element_tags = [] 19: @examples_tags = [] 20: 21: @feature_events = [] 22: @background_events = [] 23: @feature_element_events = [] 24: @examples_events = [] 25: end
# File lib/gherkin/formatter/filter_formatter.rb, line 37 37: def background(background) 38: @feature_element_name = background.name 39: @feature_element_range = background.line_range 40: @background_events = [background] 41: end
# File lib/gherkin/formatter/filter_formatter.rb, line 82 82: def eof 83: replay! 84: @formatter.eof 85: end
# File lib/gherkin/formatter/filter_formatter.rb, line 59 59: def examples(examples) 60: replay! 61: @examples_tags = examples.tags 62: @examples_name = examples.name 63: 64: table_body_range = examples.rows[1].line..examples.rows[1].line 65: @examples_range = examples.line_range.first..table_body_range.last 66: if(@filter.eval([], [], [table_body_range])) 67: examples.rows = @filter.filter_table_body_rows(examples.rows) 68: end 69: @examples_events = [examples] 70: end
# File lib/gherkin/formatter/filter_formatter.rb, line 31 31: def feature(feature) 32: @feature_tags = feature.tags 33: @feature_name = feature.name 34: @feature_events = [feature] 35: end
# File lib/gherkin/formatter/filter_formatter.rb, line 43 43: def scenario(scenario) 44: replay! 45: @feature_element_tags = scenario.tags 46: @feature_element_name = scenario.name 47: @feature_element_range = scenario.line_range 48: @feature_element_events = [scenario] 49: end
# File lib/gherkin/formatter/filter_formatter.rb, line 51 51: def scenario_outline(scenario_outline) 52: replay! 53: @feature_element_tags = scenario_outline.tags 54: @feature_element_name = scenario_outline.name 55: @feature_element_range = scenario_outline.line_range 56: @feature_element_events = [scenario_outline] 57: end
# File lib/gherkin/formatter/filter_formatter.rb, line 72 72: def step(step) 73: if @feature_element_events.any? 74: @feature_element_events << step 75: else 76: @background_events << step 77: end 78: 79: @feature_element_range = @feature_element_range.first..step.line_range.last 80: end
# File lib/gherkin/formatter/filter_formatter.rb, line 89 89: def detect_filter(filters) 90: raise "Inconsistent filters: #{filters.inspect}" if filters.map{|filter| filter.class}.uniq.length > 1 91: case(filters[0]) 92: when Fixnum 93: LineFilter.new(filters) 94: when Regexp 95: RegexpFilter.new(filters) 96: when String 97: TagFilter.new(filters) 98: end 99: end
# File lib/gherkin/formatter/filter_formatter.rb, line 101 101: def replay! 102: feature_element_ok = @filter.eval( 103: (@feature_tags + @feature_element_tags), 104: [@feature_name, @feature_element_name].compact, 105: [@feature_element_range].compact 106: ) 107: examples_ok = @filter.eval( 108: (@feature_tags + @feature_element_tags + @examples_tags), 109: [@feature_name, @feature_element_name, @examples_name].compact, 110: [@feature_element_range, @examples_range].compact 111: ) 112: 113: if feature_element_ok || examples_ok 114: replay_events!(@feature_events) 115: replay_events!(@background_events) 116: replay_events!(@feature_element_events) 117: 118: if examples_ok 119: replay_events!(@examples_events) 120: end 121: end 122: 123: @examples_events.clear 124: @examples_tags.clear 125: @examples_name = nil 126: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.