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 mvc activejob webdriver selenium rubocop ruby-gem
Last synced: about 10 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 (almost 13 years ago)
- Default Branch: main
- Last Pushed: 2026-04-22T04:12:38.000Z (8 days ago)
- Last Synced: 2026-04-26T19:01:50.093Z (4 days ago)
- Topics: cucumber, polyglot-release, ruby
- Language: Ruby
- Homepage:
- Size: 1.56 MB
- Stars: 35
- Watchers: 81
- Forks: 50
- Open Issues: 5
- Releases: 19
-
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
- Release event: 5
- Delete event: 20
- Pull request event: 38
- Fork event: 3
- Issues event: 4
- Watch event: 1
- Issue comment event: 9
- Push event: 59
- Pull request review comment event: 4
- Pull request review event: 1
- Create event: 39
Last Year
- Release event: 3
- Delete event: 16
- Pull request event: 22
- Issues event: 1
- Issue comment event: 4
- Push event: 40
- Pull request review comment event: 4
- Create event: 30
Committers metadata
Last synced: 6 days ago
Total Commits: 921
Total Committers: 54
Avg Commits per committer: 17.056
Development Distribution Score (DDS): 0.641
Commits in past year: 62
Committers in past year: 5
Avg Commits per committer in past year: 12.4
Development Distribution Score (DDS) in past year: 0.629
| Name | Commits | |
|---|---|---|
| Matt Wynne | m****t@m****t | 331 |
| Steve Tooke | s****e@h****s | 123 |
| Björn Rasmusson | B****n@c****g | 75 |
| Luke Hill | l****k@h****m | 65 |
| Vincent Pretre | v****e@g****m | 53 |
| Aslak Hellesøy | a****y@g****m | 36 |
| renovate[bot] | 2****] | 31 |
| Alessandro | a****0@t****r | 24 |
| Aurélien Reeves | a****s@s****m | 24 |
| Olle Jonsson | o****n@g****m | 19 |
| M.P. Korstanje | r****e@g****m | 18 |
| Thomas Brand | t****5@m****m | 14 |
| 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 |
| Richard Adams | r****2@g****m | 3 |
| Matt Metzger | m****r@g****m | 3 |
| Erran Carey | me@e****m | 3 |
| Dana Scheider | d****r@g****m | 3 |
| Andrea Nodari | a****1@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
- thinkcodelearn.com: 1
- brightcove.com: 1
- o2h.cz: 1
- neopoly.de: 1
- qwan.it: 1
- gitter.im: 1
- nes.33mail.com: 1
- suse.com: 1
- riseup.net: 1
- xtrasimplicity.com: 1
Issue and Pull Request metadata
Last synced: 13 days ago
Total issues: 13
Total pull requests: 167
Average time to close issues: 8 months
Average time to close pull requests: about 1 month
Total issue authors: 11
Total pull request authors: 29
Average comments per issue: 6.08
Average comments per pull request: 1.44
Merged pull request: 115
Bot issues: 1
Bot pull requests: 41
Past year issues: 0
Past year pull requests: 18
Past year average time to close issues: N/A
Past year average time to close pull requests: 5 days
Past year issue authors: 0
Past year pull request authors: 5
Past year average comments per issue: 0
Past year average comments per pull request: 0.78
Past year merged pull request: 11
Past year bot issues: 0
Past year bot pull requests: 5
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 (40)
- renovate[bot] (34)
- vincent-psarga (19)
- aurelien-reeves (9)
- olleolleolle (8)
- brasmusson (8)
- botandrose (6)
- dependabot[bot] (6)
- aslakhellesoy (4)
- yahonda (4)
- mattwynne (4)
- utkarsh2102 (3)
- orien (3)
- nodeg (2)
- mpkorstanje (2)
Top Issue Labels
- :hourglass: stale (4)
- :bank: debt (2)
- :question: question (1)
- :wrench: build (1)
- :bug: bug (1)
- :no_good: wontfix (1)
Top Pull Request Labels
- :robot: dependencies (16)
- :safety_pin: pinned (4)
- :hourglass: stale (2)
- :wrench: build (1)
Package metadata
- Total packages: 3
-
Total downloads:
- rubygems: 167,539,712 total
- Total docker downloads: 120,964,408
- Total dependent packages: 8 (may contain duplicates)
- Total dependent repositories: 10,224 (may contain duplicates)
- Total versions: 156
- 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.2.0 (published 3 months ago)
- Last Synced: 2026-04-23T13:53:11.142Z (7 days ago)
- Versions: 53
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 83,855,338 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.2.0 (published 3 months ago)
- Last Synced: 2026-04-17T22:02:14.197Z (13 days ago)
- Versions: 53
- Dependent Packages: 8
- Dependent Repositories: 10,224
- Downloads: 83,684,374 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.2.0+incompatible (published 3 months ago)
- Last Synced: 2026-04-17T22:02:18.284Z (13 days ago)
- Versions: 50
- 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 de0fac2e4500dabe0009e67214ff5f5447ce83dd composite
- cucumber/action-create-github-release cf2c6f77ba35d2424362e83393a1c4c004cf2ddb composite
- actions/checkout de0fac2e4500dabe0009e67214ff5f5447ce83dd composite
- cucumber/action-create-github-release cf2c6f77ba35d2424362e83393a1c4c004cf2ddb composite
- cucumber/action-publish-rubygem d8918cbdee789cfc78f346a96a59596b87795be1 composite
- actions/checkout de0fac2e4500dabe0009e67214ff5f5447ce83dd composite
- ruby/setup-ruby 4eb9f110bac952a8b68ecf92e3b5c7a987594ba6 composite
- actions/checkout de0fac2e4500dabe0009e67214ff5f5447ce83dd composite
- zizmorcore/zizmor-action 71321a20a9ded102f6e9ce5718a2fcec2c4f70d8 composite
- actions/checkout v4 composite
- ruby/setup-ruby v1 composite
Score: 27.158120086100723