| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Gherkin-ruby is a pure Ruby implementation of a Gherkin parser.
Tested with MRI 1.9.3, 2.0.0, head, Rubinius 2.0.0-rc1 and Rubinius head.
A new rewrite of the Gherkin parser used by Cucumber is planned (for version 3.0) gherkin-ruby will not add any more features until then, and will eventually be deprecated in favor of Gherkin 3.0.
$ gem install gherkin-ruby
Or in your Gemfile:
# Gemfile
gem 'gherkin-ruby'You can easily implement your own visitors to traverse the Abstract Syntax Tree. The following example just prints the step names to standard output:
class MyVisitor
def visit(ast)
ast.accept(self)
end
def visit_Feature(feature)
# Do something nasty with the feature
# Set whatever state you want:
# @current_feature = feature
# etc etc
# And keep visiting its children:
feature.each { |scenario| scenario.accept(self) }
end
def visit_Scenario(scenario)
# Do something nasty with the scenario
# Set whatever state you want:
# @current_scenario = scenario
# etc etc
# And keep visiting its children:
scenario.each { |step| step.accept(self) }
end
def visit_Background(background)
# Do something nasty with the background
# And keep visiting its children:
background.each { |step| step.accept(self) }
end
def visit_Tag(tag)
# Do something nasty with the tag
end
def visit_Step(step)
# Finally, print the step name.
puts "STEP: #{step.name}"
end
end
ast = Gherkin.parse(File.read('some.feature'))
visitor = MyVisitor.new
visitor.visit(ast)MIT (Expat) License. Copyright 2011-2013 Codegram Technologies
| Back | FazBrowse Home | New Git URL |