diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dc4cab60..cc3add47 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,22 +22,34 @@ jobs: - 2.5 gemfile: # Cucumber 3.2+ + - Gemfile-rails.4.2.x - Gemfile-rails.5.0.x - Gemfile-rails.5.1.x - Gemfile-rails.5.2.x + - Gemfile-rails.6.0.x-cukes-3 + - Gemfile-rails.6.1.x-cukes-3 # Cucumber 4.1+ - Gemfile-rails.5.2.x-cukes-4 - - Gemfile-rails.6.0.x + - Gemfile-rails.6.0.x-cukes-4 # Cucumber 5.3+ - Gemfile-rails.5.2.x-cukes-5 - Gemfile-rails.6.0.x-cukes-5 + - Gemfile-rails.6.1.x-cukes-5 + # Cucumber 6 + - Gemfile-rails.6.0.x-cukes-6 + - Gemfile-rails.6.1.x-cukes-6 # Edge - Gemfile-rails.edge exclude: + # Rails edge is now 7.x and requires ruby 2.7 - gemfile: Gemfile-rails.edge ruby: 2.6 - gemfile: Gemfile-rails.edge ruby: 2.5 + - gemfile: Gemfile-rails.4.2.x + ruby: 2.7 + - gemfile: Gemfile-rails.4.2.x + ruby: 3.0 env: BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }} diff --git a/README.md b/README.md index 370071a8..d8ae7bfa 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # pickle -[Build Status](https://travis-ci.org/ianwhite/pickle) + +[![build](https://github.com/ianwhite/pickle/actions/workflows/build.yml/badge.svg)](https://github.com/ianwhite/pickle/actions/workflows/build.yml) Pickle gives you cucumber steps that create your models easily from factory-girl, machinist, or fabrication. You can also just use ActiveRecord as a factory but it's not as cool. Pickle can make use of different ORMs for finding records. Currently ActiveRecord, DataMapper, MongoID adapters are provided. More adapters welcome! @@ -12,12 +13,14 @@ This is a quickstart guide for rails apps. Firstly, install [cucumber-rails](ht ## Supported versions -Rails 4.2 should still work, but it is unsupported. There is a conflict with bundler on travis I just don't want to deal -with. Since this is no longer supported by the rails team, consider using it at you own risk. +Cucumber 2.x - support was dropped from release 0.6.0 +Cucumber 3.x - support is best-effort basis, but tests run on rails 4.2 all the way until 6.1 +Cucumber 4.x - should work with all Rails 5.x versions, tests only run for 5.2 and 6.0 +Cucumber 5.x - all tests pass for rails 5.2, 6.0 and 6.1 +Cucumber 6.x - all tests pass for rails 6.0 and 6.1 -Cucumber 2.x support is dropped from release 0.6.0 -Cucumber 3.x and 4.x should work with all Rails 5.x versions -Cucumber 5.x support is planned +Please open pull-requests with fixes if you encounter any problems. +No active development on this gem. ### Rails 5 and Rails 6 diff --git a/gemfiles/Gemfile-rails.4.2.x b/gemfiles/Gemfile-rails.4.2.x new file mode 100644 index 00000000..061ae3ba --- /dev/null +++ b/gemfiles/Gemfile-rails.4.2.x @@ -0,0 +1,13 @@ +source "http://rubygems.org" + +# Bundler 1.x default to insecure http:// for github: shortcut +git_source(:github){ |repo_name| "https://github.com/#{repo_name}.git" } + +gemspec :path => ".." + +gem "rails", "~> 4.2.9" +gem "cucumber", "~> 3.2.0" +gem "sqlite3", "~> 1.3.6" +gem "bundler", "~> 1.17" + +gem 'fabrication', github: 'mathieujobin/fabrication', ref: '923cf6fcefd0566b1d6be7bd2f685b89388f4800' diff --git a/gemfiles/Gemfile-rails.4.2.x.lock b/gemfiles/Gemfile-rails.4.2.x.lock new file mode 100644 index 00000000..a9a418ca --- /dev/null +++ b/gemfiles/Gemfile-rails.4.2.x.lock @@ -0,0 +1,214 @@ +GIT + remote: https://github.com/mathieujobin/fabrication.git + revision: 923cf6fcefd0566b1d6be7bd2f685b89388f4800 + ref: 923cf6fcefd0566b1d6be7bd2f685b89388f4800 + specs: + fabrication (2.16.2) + +PATH + remote: .. + specs: + pickle (0.6.1) + cucumber (>= 3.0, < 7.0) + rake + +GEM + remote: http://rubygems.org/ + specs: + actionmailer (4.2.11.3) + actionpack (= 4.2.11.3) + actionview (= 4.2.11.3) + activejob (= 4.2.11.3) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 1.0, >= 1.0.5) + actionpack (4.2.11.3) + actionview (= 4.2.11.3) + activesupport (= 4.2.11.3) + rack (~> 1.6) + rack-test (~> 0.6.2) + rails-dom-testing (~> 1.0, >= 1.0.5) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + actionview (4.2.11.3) + activesupport (= 4.2.11.3) + builder (~> 3.1) + erubis (~> 2.7.0) + rails-dom-testing (~> 1.0, >= 1.0.5) + rails-html-sanitizer (~> 1.0, >= 1.0.3) + activejob (4.2.11.3) + activesupport (= 4.2.11.3) + globalid (>= 0.3.0) + activemodel (4.2.11.3) + activesupport (= 4.2.11.3) + builder (~> 3.1) + activerecord (4.2.11.3) + activemodel (= 4.2.11.3) + activesupport (= 4.2.11.3) + arel (~> 6.0) + activesupport (4.2.11.3) + i18n (~> 0.7) + minitest (~> 5.1) + thread_safe (~> 0.3, >= 0.3.4) + tzinfo (~> 1.1) + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) + arel (6.0.4) + backports (3.21.0) + builder (3.2.4) + capybara (3.35.3) + addressable + mini_mime (>= 0.1.3) + nokogiri (~> 1.8) + rack (>= 1.6.0) + rack-test (>= 0.6.3) + regexp_parser (>= 1.5, < 3.0) + xpath (~> 3.2) + codecov (0.5.2) + simplecov (>= 0.15, < 0.22) + concurrent-ruby (1.1.9) + crass (1.0.6) + cucumber (3.2.0) + builder (>= 2.1.2) + cucumber-core (~> 3.2.0) + cucumber-expressions (~> 6.0.1) + cucumber-wire (~> 0.0.1) + diff-lcs (~> 1.3) + gherkin (~> 5.1.0) + multi_json (>= 1.7.5, < 2.0) + multi_test (>= 0.1.2) + cucumber-core (3.2.1) + backports (>= 3.8.0) + cucumber-tag_expressions (~> 1.1.0) + gherkin (~> 5.0) + cucumber-expressions (6.0.1) + cucumber-rails (2.1.0) + capybara (>= 2.12, < 4) + cucumber (>= 3.0.2, < 5) + mime-types (>= 2.0, < 4) + nokogiri (~> 1.8) + rails (>= 4.2, < 7) + cucumber-tag_expressions (1.1.1) + cucumber-wire (0.0.1) + database_cleaner (1.99.0) + diff-lcs (1.4.4) + docile (1.4.0) + erubis (2.7.0) + factory_bot (5.2.0) + activesupport (>= 4.2.0) + gherkin (5.1.0) + git (1.8.1) + rchardet (~> 1.8) + globalid (0.4.2) + activesupport (>= 4.2.0) + i18n (0.9.5) + concurrent-ruby (~> 1.0) + loofah (2.10.0) + crass (~> 1.0.2) + nokogiri (>= 1.5.9) + machinist (2.0) + mail (2.7.1) + mini_mime (>= 0.1.1) + mime-types (3.3.1) + mime-types-data (~> 3.2015) + mime-types-data (3.2021.0225) + mini_mime (1.1.0) + mini_portile2 (2.5.3) + minitest (5.14.4) + multi_json (1.15.0) + multi_test (0.1.2) + nokogiri (1.11.7) + mini_portile2 (~> 2.5.0) + racc (~> 1.4) + public_suffix (4.0.6) + racc (1.5.2) + rack (1.6.13) + rack-test (0.6.3) + rack (>= 1.0) + rails (4.2.11.3) + actionmailer (= 4.2.11.3) + actionpack (= 4.2.11.3) + actionview (= 4.2.11.3) + activejob (= 4.2.11.3) + activemodel (= 4.2.11.3) + activerecord (= 4.2.11.3) + activesupport (= 4.2.11.3) + bundler (>= 1.3.0, < 2.0) + railties (= 4.2.11.3) + sprockets-rails + rails-deprecated_sanitizer (1.0.4) + activesupport (>= 4.2.0.alpha) + rails-dom-testing (1.0.9) + activesupport (>= 4.2.0, < 5.0) + nokogiri (~> 1.6) + rails-deprecated_sanitizer (>= 1.0.1) + rails-html-sanitizer (1.3.0) + loofah (~> 2.3) + railties (4.2.11.3) + actionpack (= 4.2.11.3) + activesupport (= 4.2.11.3) + rake (>= 0.8.7) + thor (>= 0.18.1, < 2.0) + rake (13.0.3) + rchardet (1.8.0) + regexp_parser (2.1.1) + rspec-core (3.9.3) + rspec-support (~> 3.9.3) + rspec-expectations (3.9.4) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.9.0) + rspec-mocks (3.9.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.9.0) + rspec-rails (3.9.1) + actionpack (>= 3.0) + activesupport (>= 3.0) + railties (>= 3.0) + rspec-core (~> 3.9.0) + rspec-expectations (~> 3.9.0) + rspec-mocks (~> 3.9.0) + rspec-support (~> 3.9.0) + rspec-support (3.9.4) + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.3) + sprockets (4.0.2) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + sprockets-rails (3.2.2) + actionpack (>= 4.0) + activesupport (>= 4.0) + sprockets (>= 3.0.0) + sqlite3 (1.3.13) + thor (1.1.0) + thread_safe (0.3.6) + tzinfo (1.2.9) + thread_safe (~> 0.1) + xpath (3.2.0) + nokogiri (~> 1.8) + yard (0.9.26) + +PLATFORMS + ruby + +DEPENDENCIES + bundler (~> 1.17) + capybara + codecov + cucumber (~> 3.2.0) + cucumber-rails + database_cleaner + fabrication! + factory_bot + git + machinist + pickle! + rack + rails (~> 4.2.9) + rspec-rails (~> 3.0) + sqlite3 (~> 1.3.6) + yard + +BUNDLED WITH + 1.17.3 diff --git a/gemfiles/Gemfile-rails.6.0.x-cukes-3 b/gemfiles/Gemfile-rails.6.0.x-cukes-3 new file mode 100644 index 00000000..c21c46a0 --- /dev/null +++ b/gemfiles/Gemfile-rails.6.0.x-cukes-3 @@ -0,0 +1,10 @@ +source "http://rubygems.org" + +# Bundler 1.x default to insecure http:// for github: shortcut +git_source(:github){ |repo_name| "https://github.com/#{repo_name}.git" } + +gemspec :path => ".." + +gem "activerecord", "~> 6.0.0" +gem "cucumber", "~> 3.2" +gem 'fabrication', github: 'mathieujobin/fabrication', ref: '923cf6fcefd0566b1d6be7bd2f685b89388f4800' diff --git a/gemfiles/Gemfile-rails.6.0.x b/gemfiles/Gemfile-rails.6.0.x-cukes-4 similarity index 100% rename from gemfiles/Gemfile-rails.6.0.x rename to gemfiles/Gemfile-rails.6.0.x-cukes-4 diff --git a/gemfiles/Gemfile-rails.6.0.x-cukes-6 b/gemfiles/Gemfile-rails.6.0.x-cukes-6 new file mode 100644 index 00000000..d647a7a5 --- /dev/null +++ b/gemfiles/Gemfile-rails.6.0.x-cukes-6 @@ -0,0 +1,11 @@ +source "http://rubygems.org" + +# Bundler 1.x default to insecure http:// for github: shortcut +git_source(:github){ |repo_name| "https://github.com/#{repo_name}.git" } + +gemspec :path => ".." + +gem "rails", "~> 6.0.0" +gem "cucumber", "~> 6.0" +gem "cucumber-rails" +gem 'fabrication', github: 'mathieujobin/fabrication', ref: '923cf6fcefd0566b1d6be7bd2f685b89388f4800' diff --git a/gemfiles/Gemfile-rails.6.1.x-cukes-3 b/gemfiles/Gemfile-rails.6.1.x-cukes-3 new file mode 100644 index 00000000..fb16a712 --- /dev/null +++ b/gemfiles/Gemfile-rails.6.1.x-cukes-3 @@ -0,0 +1,10 @@ +source "http://rubygems.org" + +# Bundler 1.x default to insecure http:// for github: shortcut +git_source(:github){ |repo_name| "https://github.com/#{repo_name}.git" } + +gemspec :path => ".." + +gem "activerecord", "~> 6.1.0" +gem "cucumber", "~> 3.2" +gem 'fabrication', github: 'mathieujobin/fabrication', ref: '923cf6fcefd0566b1d6be7bd2f685b89388f4800' diff --git a/gemfiles/Gemfile-rails.6.1.x-cukes-4 b/gemfiles/Gemfile-rails.6.1.x-cukes-4 new file mode 100644 index 00000000..c21bf8ce --- /dev/null +++ b/gemfiles/Gemfile-rails.6.1.x-cukes-4 @@ -0,0 +1,10 @@ +source "http://rubygems.org" + +# Bundler 1.x default to insecure http:// for github: shortcut +git_source(:github){ |repo_name| "https://github.com/#{repo_name}.git" } + +gemspec :path => ".." + +gem "activerecord", "~> 6.1.0" +gem "cucumber", "~> 4.1" +gem 'fabrication', github: 'mathieujobin/fabrication', ref: '923cf6fcefd0566b1d6be7bd2f685b89388f4800' diff --git a/gemfiles/Gemfile-rails.6.1.x-cukes-5 b/gemfiles/Gemfile-rails.6.1.x-cukes-5 new file mode 100644 index 00000000..70fce6bc --- /dev/null +++ b/gemfiles/Gemfile-rails.6.1.x-cukes-5 @@ -0,0 +1,11 @@ +source "http://rubygems.org" + +# Bundler 1.x default to insecure http:// for github: shortcut +git_source(:github){ |repo_name| "https://github.com/#{repo_name}.git" } + +gemspec :path => ".." + +gem "rails", "~> 6.1.0" +gem "cucumber", "~> 5.0" +gem "cucumber-rails" +gem 'fabrication', github: 'mathieujobin/fabrication', ref: '923cf6fcefd0566b1d6be7bd2f685b89388f4800' diff --git a/gemfiles/Gemfile-rails.6.1.x-cukes-6 b/gemfiles/Gemfile-rails.6.1.x-cukes-6 new file mode 100644 index 00000000..e88377f7 --- /dev/null +++ b/gemfiles/Gemfile-rails.6.1.x-cukes-6 @@ -0,0 +1,11 @@ +source "http://rubygems.org" + +# Bundler 1.x default to insecure http:// for github: shortcut +git_source(:github){ |repo_name| "https://github.com/#{repo_name}.git" } + +gemspec :path => ".." + +gem "rails", "~> 6.1.0" +gem "cucumber", "~> 6.0" +gem "cucumber-rails" +gem 'fabrication', github: 'mathieujobin/fabrication', ref: '923cf6fcefd0566b1d6be7bd2f685b89388f4800' diff --git a/lib/pickle/version.rb b/lib/pickle/version.rb index 0d013a49..dbab8427 100644 --- a/lib/pickle/version.rb +++ b/lib/pickle/version.rb @@ -1,3 +1,3 @@ module Pickle - VERSION = "0.6.0" + VERSION = "0.6.1" end diff --git a/pickle.gemspec b/pickle.gemspec index 66b63165..fb427269 100644 --- a/pickle.gemspec +++ b/pickle.gemspec @@ -13,13 +13,13 @@ Gem::Specification.new do |s| s.homepage = "https://github.com/ianwhite/pickle" s.rubyforge_project = "pickle" - s.required_rubygems_version = ">= 1.3.6" + s.required_rubygems_version = ">= 2.0" s.files = `git ls-files`.split("\n") s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n") s.require_paths = ["lib"] - s.add_dependency "cucumber", ">=3.0", "< 6.0" + s.add_dependency "cucumber", ">=3.0", "< 7.0" s.add_dependency "rake" s.add_development_dependency "rack"