# File lib/gherkin/json_parser.rb, line 13 def initialize(reporter, formatter) @reporter, @formatter = reporter, formatter end
Parse a gherkin object o
, which can either be a JSON String,
or a Hash (from a parsed JSON String).
# File lib/gherkin/json_parser.rb, line 19 def parse(o, feature_uri='unknown.json', line_offset=0) o = JSON.parse(o) if String === o @formatter.uri(feature_uri) Formatter::Model::Feature.new(comments(o), tags(o), keyword(o), name(o), description(o), line(o)).replay(@formatter) (o["elements"] || []).each do |feature_element| feature_element(feature_element).replay(@formatter) (feature_element["steps"] || []).each do |step| step(step).replay(@formatter) match(step) result(step) embeddings(step) end (feature_element["examples"] || []).each do |eo| Formatter::Model::Examples.new(comments(eo), tags(eo), keyword(eo), name(eo), description(eo), line(eo), rows(eo['rows'])).replay(@formatter) end end @formatter.eof end