Class: Gherkin::Formatter::JSONFormatter
- Inherits:
-
Object
- Object
- Gherkin::Formatter::JSONFormatter
- Includes:
- Base64
- Defined in:
- lib/gherkin/formatter/json_formatter.rb
Overview
This class doesn’t really generate JSON - instead it populates an Array that can easily be turned into JSON.
Instance Method Summary collapse
- #after(match, result) ⇒ Object
- #background(background) ⇒ Object
- #before(match, result) ⇒ Object
- #done ⇒ Object
- #embedding(mime_type, data) ⇒ Object
- #eof ⇒ Object
- #examples(examples) ⇒ Object
- #feature(feature) ⇒ Object
-
#initialize(io) ⇒ JSONFormatter
constructor
A new instance of JSONFormatter.
- #match(match) ⇒ Object
- #result(result) ⇒ Object
- #scenario(scenario) ⇒ Object
- #scenario_outline(scenario_outline) ⇒ Object
- #step(step) ⇒ Object
- #uri(uri) ⇒ Object
- #write(text) ⇒ Object
Constructor Details
#initialize(io) ⇒ JSONFormatter
Returns a new instance of JSONFormatter.
15 16 17 18 19 20 |
# File 'lib/gherkin/formatter/json_formatter.rb', line 15 def initialize(io) raise "Must be writeable" unless io.respond_to?(:write) @io = io @feature_hashes = [] @current_step_or_hook = nil end |
Instance Method Details
#after(match, result) ⇒ Object
69 70 71 |
# File 'lib/gherkin/formatter/json_formatter.rb', line 69 def after(match, result) add_hook(match, result, "after") end |
#background(background) ⇒ Object
36 37 38 |
# File 'lib/gherkin/formatter/json_formatter.rb', line 36 def background(background) feature_elements << background.to_hash end |
#before(match, result) ⇒ Object
65 66 67 |
# File 'lib/gherkin/formatter/json_formatter.rb', line 65 def before(match, result) add_hook(match, result, "before") end |
#done ⇒ Object
22 23 24 |
# File 'lib/gherkin/formatter/json_formatter.rb', line 22 def done @io.write(@feature_hashes.to_json) end |
#embedding(mime_type, data) ⇒ Object
73 74 75 |
# File 'lib/gherkin/formatter/json_formatter.rb', line 73 def (mime_type, data) << {'mime_type' => mime_type, 'data' => encode64s(data)} end |
#eof ⇒ Object
81 82 |
# File 'lib/gherkin/formatter/json_formatter.rb', line 81 def eof end |
#examples(examples) ⇒ Object
48 49 50 |
# File 'lib/gherkin/formatter/json_formatter.rb', line 48 def examples(examples) all_examples << examples.to_hash end |
#feature(feature) ⇒ Object
30 31 32 33 34 |
# File 'lib/gherkin/formatter/json_formatter.rb', line 30 def feature(feature) @feature_hash = feature.to_hash @feature_hash['uri'] = @uri @feature_hashes << @feature_hash end |
#match(match) ⇒ Object
57 58 59 |
# File 'lib/gherkin/formatter/json_formatter.rb', line 57 def match(match) @current_step_or_hook['match'] = match.to_hash end |
#result(result) ⇒ Object
61 62 63 |
# File 'lib/gherkin/formatter/json_formatter.rb', line 61 def result(result) @current_step_or_hook['result'] = result.to_hash end |
#scenario(scenario) ⇒ Object
40 41 42 |
# File 'lib/gherkin/formatter/json_formatter.rb', line 40 def scenario(scenario) feature_elements << scenario.to_hash end |
#scenario_outline(scenario_outline) ⇒ Object
44 45 46 |
# File 'lib/gherkin/formatter/json_formatter.rb', line 44 def scenario_outline(scenario_outline) feature_elements << scenario_outline.to_hash end |
#step(step) ⇒ Object
52 53 54 55 |
# File 'lib/gherkin/formatter/json_formatter.rb', line 52 def step(step) @current_step_or_hook = step.to_hash steps << @current_step_or_hook end |
#uri(uri) ⇒ Object
26 27 28 |
# File 'lib/gherkin/formatter/json_formatter.rb', line 26 def uri(uri) @uri = uri end |
#write(text) ⇒ Object
77 78 79 |
# File 'lib/gherkin/formatter/json_formatter.rb', line 77 def write(text) output << text end |