{"id":15101720,"url":"https://github.com/wojtha/mouse_melon","last_synced_at":"2026-01-19T03:33:32.940Z","repository":{"id":56884616,"uuid":"42739139","full_name":"wojtha/mouse_melon","owner":"wojtha","description":"MouseMelon is a simple DSL which allows to write acceptance specs in Gherkin-like language without any parser.","archived":false,"fork":false,"pushed_at":"2019-11-24T21:37:42.000Z","size":145,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-04T08:26:29.537Z","etag":null,"topics":["bdd","dsl","gherkin","rspec","testing"],"latest_commit_sha":null,"homepage":"https://github.com/wojtha/mouse_melon","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wojtha.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-18T18:08:11.000Z","updated_at":"2019-11-24T21:37:44.000Z","dependencies_parsed_at":"2022-08-20T13:10:56.144Z","dependency_job_id":null,"html_url":"https://github.com/wojtha/mouse_melon","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/wojtha/mouse_melon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wojtha%2Fmouse_melon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wojtha%2Fmouse_melon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wojtha%2Fmouse_melon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wojtha%2Fmouse_melon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wojtha","download_url":"https://codeload.github.com/wojtha/mouse_melon/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wojtha%2Fmouse_melon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28560391,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T03:31:16.861Z","status":"ssl_error","status_checked_at":"2026-01-19T03:31:15.069Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bdd","dsl","gherkin","rspec","testing"],"created_at":"2024-09-25T18:28:59.499Z","updated_at":"2026-01-19T03:33:32.921Z","avatar_url":"https://github.com/wojtha.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MouseMelon a.k.a. Mexikan Gherkin\n\nMouseMelon is a pseudo-Gherkin DSL designed to be used in RSpec acceptance specs but it may be used elsewhere.\n\n[![Build Status](https://travis-ci.org/wojtha/mouse_melon.svg?branch=master)](https://travis-ci.org/wojtha/mouse_melon) [![Code Climate](https://codeclimate.com/github/wojtha/mouse_melon/badges/gpa.svg)](https://codeclimate.com/github/wojtha/mouse_melon) [![Test Coverage](https://codeclimate.com/github/wojtha/mouse_melon/badges/coverage.svg)](https://codeclimate.com/github/wojtha/mouse_melon/coverage)\n\n![Example of Gherkin feature vs MouseMelon spec](/assets/gherkin_vs_mouse_melon.png?raw=true \"Gherkin vs MouseMelon\")\n\n## Notable features:\n\n  * It runs inside RSpec (Minitest support may come later): just include module and you're ready.\n  * `Given`, `When`, `Then` are just methods which calls the step definitions directly.\n  * You can use symbols `I_am_registered_user` or feature steps `I am registered user`.\n  * You can define the steps globally, locally or mix them into the specs.\n  * Steps can have arguments `I register user`.\n  * Command line tool to generate step definitions.\n  * No fancy output of tested steps like Cucumber or Spinach.\n\n### Currently supported/tested environment:\n\n  * RSpec 3.3.x\n  * Ruby 2.1.x\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'mouse_melon'\n```\n\nAnd then execute:\n\n    $ bundle\n\nOr install it yourself as:\n\n    $ gem install mouse_melon\n\nInclude it to RSpec helper\n\n```ruby\n  RSpec.configure do |config|\n    config.include MouseMelon::DSL, :type =\u003e :feature\n  end\n```\n\n## Usage\n\nHere is demonstration of various possible styles:\n\n```ruby\nfeature 'MouseMelon features' do\n  # Steps shared via modules\n  include CommonSteps\n\n  scenario 'Steps as methods' do\n    given_is_defined\n    when_is_defined\n    then_is_defined\n  end\n\n  scenario 'Steps as symbols' do\n    Given :given_is_defined\n     When :when_is_defined\n     Then :then_is_defined\n  end\n\n  scenario 'Steps as strings' do\n    Given 'given is defined'\n     When 'when is defined'\n     Then 'then is defined'\n      And 'and is defined'\n      And 'and it has arguments', 'hello', 1\n  end\n\n  scenario 'Steps as Steps' do\n    Step 'given is defined'\n    Step 'when is defined'\n    Step 'then is defined'\n  end\n\n  scenario 'Steps as triangle bullets' do\n    ‣ 'given is defined'\n    ‣ 'when is defined'\n    ‣ 'then is defined'\n  end\n\n  scenario 'Steps as circle bullets' do\n    • 'given is defined'\n    • 'when is defined'\n    • 'then is defined'\n  end\n\n  # INLINE STEP DEFINITIONS\n\n  def given_is_defined\n    puts 'GIVEN'\n  end\n\n  def when_is_defined\n    puts 'WHEN'\n  end\n\n  step 'then is defined' do\n    puts 'THEN'\n  end\n\n  step 'and is defined' do\n    puts 'AND'\n  end\n\n  step 'and it has arguments' do |*args|\n    puts \"AND with args #{args.inspect}\"\n  end\nend\n```\n\nFor more examples look inside `examples` and `spec` folders.\n\n## Development\n\nAfter checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.\n\nTo install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/wojtha/mouse_melon. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.\n\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwojtha%2Fmouse_melon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwojtha%2Fmouse_melon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwojtha%2Fmouse_melon/lists"}