https://github.com/cucumber/cucumber-ruby-core
Core library for the Ruby flavour of Cucumber
https://github.com/cucumber/cucumber-ruby-core
Keywords
cucumber polyglot-release ruby
Keywords from Contributors
tidelift rubygems activerecord rspec activejob mvc webdriver selenium rubocop feature-flag
Last synced: about 8 hours ago
JSON representation
Repository metadata
Core library for the Ruby flavour of Cucumber
- Host: GitHub
- URL: https://github.com/cucumber/cucumber-ruby-core
- Owner: cucumber
- License: mit
- Created: 2013-06-03T12:03:32.000Z (over 12 years ago)
- Default Branch: main
- Last Pushed: 2025-12-25T06:14:46.000Z (17 days ago)
- Last Synced: 2026-01-05T00:15:09.363Z (6 days ago)
- Topics: cucumber, polyglot-release, ruby
- Language: Ruby
- Homepage:
- Size: 1.48 MB
- Stars: 35
- Watchers: 82
- Forks: 50
- Open Issues: 4
- Releases: 18
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
README.md
Cucumber
Cucumber is a tool for running automated tests written in plain language. Because they're
written in plain language, they can be read by anyone on your team. Because they can be
read by anyone, you can use them to help improve communication, collaboration and trust on
your team.
Cucumber Core is the inner hexagon
for the Ruby flavour of Cucumber.
It contains the core domain logic to execute Cucumber features. It has no user interface,
just a Ruby API. If you're interested in how Cucumber works, or in building other
tools that work with Gherkin documents, you've come to the right place.
See CONTRIBUTING.md for info on contributing to Cucumber (issues,
PRs, etc.).
Everyone interacting in this codebase and issue tracker is expected to follow the
Cucumber code of conduct.
Installation
cucumber-core is a Ruby gem. Install it as you would install any gem: add
cucumber-core to your Gemfile:
gem 'cucumber-core'
then install it:
$ bundle
or install the gem directly:
$ gem install cucumber-core
Supported platforms
- Ruby 3.3
- Ruby 3.2
- Ruby 3.1
- Ruby 3.0
- JRuby 9.4 (with some limitations)
Usage
The following example aims to illustrate how to use cucumber-core gem and to
make sure it is working well within your environment. For more details
explanation on what it actually does and how to work with it, see
docs/ARCHITECTURE.md.
# cucumber_core_example.rb
require 'cucumber/core'
require 'cucumber/core/filter'
class ActivateSteps < Cucumber::Core::Filter.new
def test_case(test_case)
test_steps = test_case.test_steps.map do |step|
step.with_action { print "processing: " }
end
test_case.with_steps(test_steps).describe_to(receiver)
end
end
feature = Cucumber::Core::Gherkin::Document.new(__FILE__, <<-GHERKIN)
Feature:
Scenario:
Given some requirements
When we do something
Then it should pass
GHERKIN
class MyRunner
include Cucumber::Core
end
MyRunner.new.execute([feature], [ActivateSteps.new]) do |events|
events.on(:test_step_finished) do |event|
test_step, result = event.test_step, event.result
print "#{test_step.text} #{result}\n"
end
end
If you run this Ruby script:
ruby cucumber_core_example.rb
You should see the following output:
processing: some requirements ✓
processing: we do something ✓
processing: it should pass ✓
Documentation and support
- Getting started with Cucumber, writing features, step definitions, and more: https://cucumber.io/docs
- Discord (invite link here)
cucumber-coreoverview: docs/ARCHITECTURE.md- How to work with local repositories for
cucumber-gherkin,cucumber-messagesorcucumber-ruby: CONTRIBUTING.md#working-with-local-cucumber-dependencies
Copyright
Copyright (c) Cucumber Ltd. and Contributors. See LICENSE for details.
Owner metadata
- Name: Cucumber
- Login: cucumber
- Email:
- Kind: organization
- Description: Cucumber Open
- Website: https://cucumber.io/tools/cucumber-open/
- Location:
- Twitter: cucumberbdd
- Company:
- Icon url: https://avatars.githubusercontent.com/u/320565?v=4
- Repositories: 117
- Last ynced at: 2024-10-29T23:35:46.448Z
- Profile URL: https://github.com/cucumber
GitHub Events
Total
- Create event: 27
- Issues event: 4
- Release event: 5
- Watch event: 1
- Delete event: 10
- Issue comment event: 9
- Push event: 35
- Pull request review event: 1
- Pull request event: 32
- Fork event: 3
Last Year
- Create event: 24
- Issues event: 4
- Release event: 4
- Watch event: 1
- Delete event: 9
- Issue comment event: 9
- Push event: 27
- Pull request review event: 1
- Pull request event: 28
- Fork event: 2
Committers metadata
Last synced: 1 day ago
Total Commits: 883
Total Committers: 54
Avg Commits per committer: 16.352
Development Distribution Score (DDS): 0.625
Commits in past year: 30
Committers in past year: 5
Avg Commits per committer in past year: 6.0
Development Distribution Score (DDS) in past year: 0.3
| Name | Commits | |
|---|---|---|
| Matt Wynne | m****t@m****t | 331 |
| Steve Tooke | s****e@h****s | 123 |
| Björn Rasmusson | B****n@c****g | 74 |
| Luke Hill | l****k@h****m | 61 |
| Vincent Pretre | v****e@g****m | 53 |
| Aslak Hellesøy | a****y@g****m | 36 |
| Alessandro | a****0@t****r | 24 |
| Aurélien Reeves | a****s@s****m | 24 |
| Olle Jonsson | o****n@g****m | 19 |
| Thomas Brand | t****5@m****m | 14 |
| renovate[bot] | 2****] | 12 |
| Christophe Bliard | c****d@t****o | 10 |
| Aslak Hellesøy | a****y@s****m | 9 |
| Jun Aruga | j****a@r****m | 7 |
| Ben Song | z****g@g****m | 6 |
| Oleg Sukhodolsky | o****3@g****m | 6 |
| Utkarsh Gupta | u****h@d****g | 6 |
| Micah Geisel | m****h@b****m | 4 |
| Oren Dobzinski | o****n@d****m | 4 |
| Orien Madgwick | _@o****o | 4 |
| M.P. Korstanje | r****e@g****m | 4 |
| Andrea Nodari | a****1@g****m | 3 |
| Dana Scheider | d****r@g****m | 3 |
| Erran Carey | me@e****m | 3 |
| Matt Metzger | m****r@g****m | 3 |
| Richard Adams | r****2@g****m | 3 |
| danascheider | d****r@r****m | 2 |
| vincent.capicotto | v****o@h****t | 2 |
| dependabot[bot] | 4****] | 2 |
| Timothée Ville | t****e@h****t | 2 |
| and 24 more... | ||
Committer domains:
- smartbear.com: 2
- hiptest.net: 2
- mattwynne.net: 1
- heavi.es: 1
- computer.org: 1
- terra.com.br: 1
- me.com: 1
- trux.info: 1
- redhat.com: 1
- debian.org: 1
- botandrose.com: 1
- desk.com: 1
- orien.io: 1
- errancarey.com: 1
- renewfinancial.com: 1
- renovateapp.com: 1
- suschlik.de: 1
- brightcove.com: 1
- thinkcodelearn.com: 1
- qwan.it: 1
- neopoly.de: 1
- o2h.cz: 1
- gitter.im: 1
- xtrasimplicity.com: 1
- riseup.net: 1
- suse.com: 1
- nes.33mail.com: 1
Issue and Pull Request metadata
Last synced: 2 days ago
Total issues: 13
Total pull requests: 159
Average time to close issues: 8 months
Average time to close pull requests: about 1 month
Total issue authors: 11
Total pull request authors: 28
Average comments per issue: 6.08
Average comments per pull request: 1.48
Merged pull request: 111
Bot issues: 1
Bot pull requests: 37
Past year issues: 3
Past year pull requests: 23
Past year average time to close issues: 2 months
Past year average time to close pull requests: 10 days
Past year issue authors: 2
Past year pull request authors: 6
Past year average comments per issue: 0.33
Past year average comments per pull request: 0.7
Past year merged pull request: 17
Past year bot issues: 0
Past year bot pull requests: 6
Top Issue Authors
- aurelien-reeves (2)
- nodeg (2)
- olleolleolle (1)
- calderete (1)
- knightinfire (1)
- akostadinov (1)
- renovate[bot] (1)
- vincent-psarga (1)
- luke-hill (1)
- tas50 (1)
- majormoses (1)
Top Pull Request Authors
- luke-hill (39)
- renovate[bot] (30)
- vincent-psarga (19)
- aurelien-reeves (9)
- olleolleolle (8)
- brasmusson (7)
- botandrose (6)
- dependabot[bot] (6)
- yahonda (4)
- mattwynne (4)
- aslakhellesoy (4)
- utkarsh2102 (3)
- orien (3)
- nodeg (2)
- andrew (2)
Top Issue Labels
- :hourglass: stale (4)
- :bank: debt (2)
- :question: question (1)
- :bug: bug (1)
- :no_good: wontfix (1)
- :wrench: build (1)
Top Pull Request Labels
- :robot: dependencies (12)
- :safety_pin: pinned (4)
- :hourglass: stale (2)
- :wrench: build (1)
Package metadata
- Total packages: 3
-
Total downloads:
- rubygems: 161,119,180 total
- Total docker downloads: 120,964,408
- Total dependent packages: 8 (may contain duplicates)
- Total dependent repositories: 10,224 (may contain duplicates)
- Total versions: 153
- Total maintainers: 1
gem.coop: cucumber-core
Core library for the Cucumber BDD app
- Homepage: https://cucumber.io
- Documentation: http://www.rubydoc.info/gems/cucumber-core/
- Licenses: MIT
- Latest release: 16.1.1 (published 18 days ago)
- Last Synced: 2026-01-09T11:30:43.827Z (2 days ago)
- Versions: 52
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 80,559,590 Total
- Docker Downloads: 60,482,204
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 0.24%
- Downloads: 0.363%
- Docker downloads count: 0.597%
- Maintainers (1)
-
Funding:
- https://opencollective.com/cucumber
rubygems.org: cucumber-core
Core library for the Cucumber BDD app
- Homepage: https://cucumber.io
- Documentation: http://www.rubydoc.info/gems/cucumber-core/
- Licenses: MIT
- Latest release: 16.1.1 (published 18 days ago)
- Last Synced: 2026-01-09T11:30:44.144Z (2 days ago)
- Versions: 52
- Dependent Packages: 8
- Dependent Repositories: 10,224
- Downloads: 80,559,590 Total
- Docker Downloads: 60,482,204
-
Rankings:
- Dependent repos count: 0.331%
- Downloads: 0.352%
- Docker downloads count: 0.705%
- Dependent packages count: 2.237%
- Average: 2.671%
- Forks count: 3.723%
- Stargazers count: 8.681%
- Maintainers (1)
-
Funding:
- https://opencollective.com/cucumber
proxy.golang.org: github.com/cucumber/cucumber-ruby-core
- Homepage:
- Documentation: https://pkg.go.dev/github.com/cucumber/cucumber-ruby-core#section-documentation
- Licenses: mit
- Latest release: v16.1.1+incompatible (published 18 days ago)
- Last Synced: 2026-01-09T11:30:59.935Z (2 days ago)
- Versions: 49
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 6.999%
- Average: 8.173%
- Dependent repos count: 9.346%
Dependencies
- rake ~> 13.0, >= 13.0.6 development
- rspec ~> 3.11, >= 3.11.0 development
- rubocop ~> 1.29, >= 1.29.1 development
- rubocop-packaging ~> 0.5, >= 0.5.1 development
- unindent ~> 1.0, >= 1.0 development
- cucumber-gherkin ~> 24.0, >= 24.0.0
- cucumber-messages ~> 19.0, >= 19.0.0
- cucumber-tag-expressions ~> 4.1, >= 4.1.0
- actions/checkout v3 composite
- cucumber/action-create-github-release v1.1.0 composite
- cucumber/action-publish-rubygem v1.0.0 composite
- actions/checkout v3 composite
- ruby/setup-ruby v1 composite
- actions/checkout v4 composite
- ruby/setup-ruby v1 composite
Score: 27.110297184297668