pickle 0.5.2 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/build.yml +62 -0
  3. data/.gitignore +3 -2
  4. data/.travis.yml +24 -4
  5. data/History.txt +52 -35
  6. data/README.md +19 -27
  7. data/Rakefile.d/cucumber.rake +13 -4
  8. data/Rakefile.d/repoclean.rake +3 -0
  9. data/features/app/app.rb +7 -7
  10. data/features/app/factories.rb +5 -5
  11. data/features/email/email.feature +1 -0
  12. data/features/step_definitions/email_steps.rb +1 -0
  13. data/features/step_definitions/extra_email_steps.rb +5 -5
  14. data/features/step_definitions/pickle_steps.rb +1 -0
  15. data/features/support/email.rb +1 -0
  16. data/features/support/env.rb +9 -3
  17. data/features/support/pickle.rb +2 -2
  18. data/gemfiles/Gemfile-rails.4.2.x +13 -0
  19. data/gemfiles/Gemfile-rails.5.0.x +12 -0
  20. data/gemfiles/Gemfile-rails.5.1.x +10 -0
  21. data/gemfiles/Gemfile-rails.5.2.x +11 -0
  22. data/gemfiles/Gemfile-rails.5.2.x-cukes-4 +11 -0
  23. data/gemfiles/Gemfile-rails.5.2.x-cukes-5 +11 -0
  24. data/gemfiles/Gemfile-rails.6.0.x-cukes-3 +10 -0
  25. data/gemfiles/Gemfile-rails.6.0.x-cukes-4 +10 -0
  26. data/gemfiles/Gemfile-rails.6.0.x-cukes-5 +11 -0
  27. data/gemfiles/Gemfile-rails.6.0.x-cukes-6 +11 -0
  28. data/gemfiles/Gemfile-rails.6.1.x-cukes-3 +10 -0
  29. data/gemfiles/Gemfile-rails.6.1.x-cukes-4 +10 -0
  30. data/gemfiles/Gemfile-rails.6.1.x-cukes-5 +11 -0
  31. data/gemfiles/Gemfile-rails.6.1.x-cukes-6 +11 -0
  32. data/gemfiles/Gemfile-rails.edge +9 -0
  33. data/lib/pickle.rb +0 -1
  34. data/lib/pickle/adapter.rb +9 -11
  35. data/lib/pickle/config.rb +1 -1
  36. data/lib/pickle/path.rb +1 -1
  37. data/lib/pickle/version.rb +1 -1
  38. data/pickle.gemspec +10 -9
  39. data/rails_generators/pickle/templates/pickle.rb +2 -2
  40. data/spec/pickle/adapter_spec.rb +19 -19
  41. data/spec/pickle/config_spec.rb +9 -9
  42. data/spec/pickle/email_spec.rb +1 -1
  43. data/spec/pickle/path_spec.rb +37 -18
  44. data/spec/pickle/session_spec.rb +5 -5
  45. data/spec/spec_helper.rb +6 -1
  46. metadata +62 -56
  47. data/Gemfile +0 -3
  48. data/Gemfile.lock.development +0 -158
  49. data/features/step_definitions/email_steps.rb +0 -65
  50. data/features/step_definitions/pickle_steps.rb +0 -105
  51. data/features/support/email.rb +0 -21
  52. data/init.rb +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 1f1e30b140a40e358ef640c8a4468900f10ddc30
4
- data.tar.gz: 8a1a5ce613b46e0ad108a14e5c9f18aadbdce58f
2
+ SHA256:
3
+ metadata.gz: f34526ae76a0b88ab46f94922f171eeedf1e981b8ee66fc578ceb8f4cb72f77b
4
+ data.tar.gz: c6a954b1a1c00a03257456997ff35c1de7e906c549e19cb1e0d8a58159acde1d
5
5
  SHA512:
6
- metadata.gz: 9fb3b8d43dd6c71a1d77dbe4033b5cb802f798377b3815b3a907a98dfd4a603c569a558e7db36029df188709be4339a4bd725bd0cf626a98e46be994b739f076
7
- data.tar.gz: e395427019f47d25df0385f16a0d712f5450b4198b83f0530d067dc0b944f2f02688e12fab0649ef74695a6e26388c9e6ac87ba77ce4335b91eb5c24f6486c9d
6
+ metadata.gz: e088d8bd67ccda647a98b841dd26db5c542bdb434e377d6f73e6c9c982f59b35a1adb5ea82f22623faeff1c62cdff6c752fa07f6df7e87cac921d5eca74c8975
7
+ data.tar.gz: 8241e6550e58e7260b7c640524ff504d23db306558633f52c2c9d38dcfb2636dcc9ec7faa4471dcfc19849659cc63d0a3af34490f2a1cfe1654d4fde48932f8f
@@ -0,0 +1,62 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: build
9
+
10
+ on: [push, pull_request]
11
+
12
+ jobs:
13
+ test:
14
+ runs-on: ubuntu-20.04
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ ruby:
19
+ - 3.0
20
+ - 2.7
21
+ - 2.6
22
+ - 2.5
23
+ gemfile:
24
+ # Cucumber 3.2+
25
+ - Gemfile-rails.4.2.x
26
+ - Gemfile-rails.5.0.x
27
+ - Gemfile-rails.5.1.x
28
+ - Gemfile-rails.5.2.x
29
+ - Gemfile-rails.6.0.x-cukes-3
30
+ - Gemfile-rails.6.1.x-cukes-3
31
+ # Cucumber 4.1+
32
+ - Gemfile-rails.5.2.x-cukes-4
33
+ - Gemfile-rails.6.0.x-cukes-4
34
+ # Cucumber 5.3+
35
+ - Gemfile-rails.5.2.x-cukes-5
36
+ - Gemfile-rails.6.0.x-cukes-5
37
+ - Gemfile-rails.6.1.x-cukes-5
38
+ # Cucumber 6
39
+ - Gemfile-rails.6.0.x-cukes-6
40
+ - Gemfile-rails.6.1.x-cukes-6
41
+ # Edge
42
+ - Gemfile-rails.edge
43
+ exclude:
44
+ # Rails edge is now 7.x and requires ruby 2.7
45
+ - gemfile: Gemfile-rails.edge
46
+ ruby: 2.6
47
+ - gemfile: Gemfile-rails.edge
48
+ ruby: 2.5
49
+ - gemfile: Gemfile-rails.4.2.x
50
+ ruby: 2.7
51
+ - gemfile: Gemfile-rails.4.2.x
52
+ ruby: 3.0
53
+
54
+ env:
55
+ BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}
56
+ steps:
57
+ - uses: actions/checkout@v2
58
+ - uses: ruby/setup-ruby@v1
59
+ with:
60
+ ruby-version: ${{ matrix.ruby }}
61
+ bundler-cache: true
62
+ - run: bundle exec rake
data/.gitignore CHANGED
@@ -4,7 +4,6 @@
4
4
  # local ruby/gems dev stuff
5
5
  .rvmrc
6
6
  .bundle
7
- Gemfile.lock
8
7
  cucumber_test_app
9
8
  pickle-email*
10
9
 
@@ -14,4 +13,6 @@ doc
14
13
 
15
14
  # built gems
16
15
  pkg
17
- *.gem
16
+ *.gem
17
+
18
+ gemfiles/*.lock
data/.travis.yml CHANGED
@@ -1,10 +1,30 @@
1
1
  language: ruby
2
+ dist: xenial
3
+ cache: bundler
2
4
  rvm:
3
- - 2.1.1
4
- - 2.0.0
5
+ #- 2.7.1
6
+ - 2.6.6
7
+ - 2.5.8
8
+ #- ruby-head
9
+ gemfile:
10
+ - gemfiles/Gemfile-rails.5.0.x
11
+ - gemfiles/Gemfile-rails.5.1.x
12
+ - gemfiles/Gemfile-rails.5.2.x
13
+ - gemfiles/Gemfile-rails.5.2.x-cukes-4
14
+ - gemfiles/Gemfile-rails.5.2.x-cukes-5
15
+ - gemfiles/Gemfile-rails.6.0.x
16
+ - gemfiles/Gemfile-rails.6.0.x-cukes-5
17
+ #- gemfiles/Gemfile-rails.edge
18
+ matrix:
19
+ allow_failures:
20
+ - rvm: ruby-head
21
+ - rvm: 2.7.1
22
+ - gemfile: gemfiles/Gemfile-rails.edge
23
+ - gemfile: gemfiles/Gemfile-rails.5.2.x-cukes-5
24
+ - gemfile: gemfiles/Gemfile-rails.6.0.x-cukes-5
25
+ fast_finish: true
5
26
 
6
- before_install:
7
- - cp Gemfile.lock.development Gemfile.lock
8
27
  script:
28
+ - gem install bundler
9
29
  - bundle exec rake spec
10
30
  - bundle exec rake cucumber
data/History.txt CHANGED
@@ -1,5 +1,22 @@
1
+ == 0.6.0
2
+ * Drop support for cucumber < 3
3
+ * Officially support cucumber 4.1
4
+ * Relax dependency to support cucumber 5.x although not officially supported
5
+ * Run tests for Rails 5.0, 5.1, 5.2 and 6.0
6
+
7
+ == 0.5.5
8
+ * Relax dependency on cucumber to allow usage with Rails 5.2 [Yohei Kitamura]
9
+
10
+ == 0.5.4
11
+ * updated FactoryGirl to FactoryBot [Blake McDaniel]
12
+
13
+ == 0.5.3
14
+ * small fix to pickle_path_for_resources_action_segment [Tema Bolshakov]
15
+ * update for fabrication adapter with protected method klass [Liam Krewer]
16
+ * Fix tests to run on travis again and codecoverage [Mathieu Jobin]
17
+
1
18
  == 0.5.2
2
- * replace alias_method_chain by Module#prepend
19
+ * replace alias_method_chain by Module#prepend [Mathieu Jobin]
3
20
  eliminating deprecation warnings when using with Rails 5
4
21
 
5
22
  == 0.5.1
@@ -33,7 +50,7 @@
33
50
 
34
51
  * 1 bugfix
35
52
  * Don't blow up when fabrication not present [Ian White]
36
-
53
+
37
54
 
38
55
  == 0.4.9
39
56
 
@@ -42,8 +59,8 @@
42
59
 
43
60
  * 1 minor improvement
44
61
  * Update development dependencies so tests/features run on rails 3.1 and friends
45
-
46
-
62
+
63
+
47
64
  == 0.4.8
48
65
 
49
66
  * 2 minor improvements
@@ -56,7 +73,7 @@
56
73
  * 2 minor improvements
57
74
  * Better error message for failing to find a model [Ian White, reported by Yuval Karmi]
58
75
  * dev deps updated to latest cucumber & cucumber-rails [Ian White]
59
-
76
+
60
77
 
61
78
  == 0.4.6
62
79
  Documentation updates
@@ -79,7 +96,7 @@ large object space fix, and allow escaped quotes as string values
79
96
  * 1 bugfix
80
97
  * When using super-huge GC limits (for speeding up tests), occasionally we'll see abandoned Mongoid::Document classes appear in the ObjectSpace.
81
98
  This patch should fix that. [Devin Walters and Nick Karpenske]
82
-
99
+
83
100
  * 1 improvement
84
101
  * allow escaped quotes (\") in quoted fields [Jonathan Hinkle]
85
102
 
@@ -103,7 +120,7 @@ Docfix
103
120
 
104
121
  * 1 improvement
105
122
  * documentation fixes, and example of writing your own pickle steps
106
-
123
+
107
124
 
108
125
  == 0.4.0
109
126
  Mongoid adapter, fallback ORM adapter for those not using machinist or active_record, bugfixes
@@ -111,9 +128,9 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
111
128
  * 2 major improvements
112
129
  * adapter for Mongoid [Sebastian Zuchmanski]
113
130
  * replace ActiveRecord 'factory' adapter with Orm adapter.
114
-
131
+
115
132
  If you don't have machinist or factory_girl, the Orm factory adapter will fallback to your Orm to create classes.
116
-
133
+
117
134
  BC: if you have a line like this:
118
135
  Pickle.configure do |config|
119
136
  config.adapters = [:active_record]
@@ -123,10 +140,10 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
123
140
  Pickle.configure do |config|
124
141
  config.adapters = [:orm]
125
142
  end
126
-
143
+
127
144
  * 1 minor improvement
128
145
  * Pickle::Session::ModelNotKnownError is raised instead of a generic RuntimeError
129
-
146
+
130
147
  * 1 bugfix
131
148
  * references to unknown models in fields now raise ModelNotKnownError instead of silently assigning nil
132
149
 
@@ -140,7 +157,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
140
157
 
141
158
  * 1 bugfix
142
159
  * find_models now works with a factory name with spaces in it [#27]
143
-
160
+
144
161
 
145
162
  == 0.3.4
146
163
 
@@ -153,7 +170,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
153
170
 
154
171
  * 1 minor improvement
155
172
  * Pickle respects the default build strategy for factory girl. [Sean Hussey]
156
-
173
+
157
174
 
158
175
  == 0.3.2
159
176
 
@@ -186,7 +203,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
186
203
  == 0.2.11
187
204
 
188
205
  * 1 improvement
189
- * use correct type when converting STI pickle model to attributes
206
+ * use correct type when converting STI pickle model to attributes
190
207
 
191
208
 
192
209
  == 0.2.10
@@ -223,8 +240,8 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
223
240
  * 2 improvements
224
241
  * running specs is now doable without being in a rails app - just do 'rake spec'
225
242
  * running features is more straightforward, 'rake cucumber' then follow the instructions
226
-
227
-
243
+
244
+
228
245
  == 0.2.5 - 17 Mar 2010
229
246
 
230
247
  * 2 improvements
@@ -249,7 +266,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
249
266
  | user | name | status |
250
267
  | jack | Jack Spratt | alone |
251
268
  | pete | Pete Sprong | dead |
252
-
269
+
253
270
  * 1 minor improvement
254
271
  * Fix bug in error message for when pickle ref can't be found [Myron Marston]
255
272
 
@@ -260,8 +277,8 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
260
277
  * Added ability to follow links in emails (see email_steps.rb) [Michael Moen]
261
278
  * Added a step definition for doing stuff like: Then the user's name should be "Tobi" [Tobi Knaup]
262
279
  * Docfixes, mostly about testing [Nicholas Rutherford]
263
-
264
-
280
+
281
+
265
282
  == 0.2.1 - 1 Dec 2009
266
283
 
267
284
  * 2 minor improvements
@@ -280,11 +297,11 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
280
297
  | Ethel |
281
298
  And the 1st user should be male
282
299
  And the 2nd user should be female
283
-
300
+
284
301
  * tables now support pickle refs in cells (see features/pickle/create_from_factory_girl.rb#37)
285
-
302
+
286
303
  * features/support/email.rb adds an email helper for mapping names to email addresses (similar to NavigationHelper in paths.rb)
287
-
304
+
288
305
  * Added ability for path_to_pickle to handle arbitrary segments
289
306
  Example:
290
307
  path_to_pickle('account', 'the enquiry') => account_enquiry_path(<enquiry>)
@@ -309,7 +326,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
309
326
 
310
327
  * 1 minor improvement
311
328
  * docs: more links
312
-
329
+
313
330
 
314
331
  == 0.1.22 - 7 Nov 2009
315
332
 
@@ -334,7 +351,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
334
351
 
335
352
  * 1 minor enhancement
336
353
  * Add support for Cucumber tables [Tobi Knaup]
337
-
354
+
338
355
 
339
356
  == 0.1.16, 0.1.17, 0.1.18 - 13 Oct 2009
340
357
 
@@ -354,7 +371,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
354
371
  * update specs and features for latest cucumber and machinist changes
355
372
 
356
373
 
357
- == 0.1.13 - 16 June 2009
374
+ == 0.1.13 - 16 June 2009
358
375
 
359
376
  * 2 minor enhancements
360
377
  * model! and created_model! raise an error if pickle name can't be found
@@ -372,7 +389,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
372
389
 
373
390
  * 2 minor enhancements
374
391
  * Pickle now supports multiple machinist blueprints
375
- * Fix confusing adapter/adaptor comment generator comment
392
+ * Fix confusing adapter/adaptor comment generator comment
376
393
 
377
394
 
378
395
  == 0.1.10 - 13 Feb 2009
@@ -403,7 +420,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
403
420
  * 2 API changes
404
421
  * script/generate pickle path[s] now amends the features/support/paths.rb file
405
422
  instead of creating pge_to_path and path_steps.
406
-
423
+
407
424
  * pickle_email_steps is renamed email_steps
408
425
 
409
426
 
@@ -417,22 +434,22 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
417
434
 
418
435
  * generate email steps with `script/generate pickle email`
419
436
  email steps allow you to do things like this:
420
-
437
+
421
438
  Then 2 emails should be delivered
422
439
  And the first email should be delivered to fred@gmail.com
423
440
  And the 2nd email should be delivered to the user: "ethel"
424
-
441
+
425
442
  Then 1 email should be delivered with subject: "Activate your account"
426
443
  And the email should link to the user's page
427
-
444
+
428
445
  take a look at features/step_definitions/pickle_email_steps.rb
429
-
446
+
430
447
  * generate path steps with `script/generate pickle path`
431
448
  path steps allow you to do things like this
432
-
449
+
433
450
  When I go to the comment's page
434
451
  Then I should be at the user's new comment page
435
-
452
+
436
453
  take a look at features/step_definitions/pickle_path_steps.rb, and modify page_to_path to suit your needs
437
454
 
438
455
  * 4 minor enhancements
@@ -457,7 +474,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
457
474
  for much more intuitive env.rb
458
475
 
459
476
  * 2 minor enhancement
460
- * predicate matching is less prone to step conflicts because we preload a
477
+ * predicate matching is less prone to step conflicts because we preload a
461
478
  big list of all the predicate and column methods
462
479
  * field values now handle booleans and numerics
463
480
 
@@ -483,7 +500,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
483
500
  * 2 major enhancements
484
501
  * create your pickle steps with script/generate pickle
485
502
  * Adapter based architecture, supports Machinist, FactoryGirl, and vanilla ActiveRecord
486
-
503
+
487
504
  * 1 minor enhancement
488
505
  * model_names now defaults to subclasses of AR::Base
489
506
  * #original_model => #created_model
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # pickle
2
2
 
3
- [<img src="https://travis-ci.org/ianwhite/pickle.svg" alt="Build Status"/>](https://travis-ci.org/ianwhite/pickle)
3
+
4
+ [![build](https://github.com/ianwhite/pickle/actions/workflows/build.yml/badge.svg)](https://github.com/ianwhite/pickle/actions/workflows/build.yml)
4
5
 
5
6
  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!
6
7
 
@@ -10,7 +11,18 @@ References to the models are stored in the current world, not necessarily for th
10
11
 
11
12
  This is a quickstart guide for rails apps. Firstly, install [cucumber-rails](http://github.com/aslakhellesoy/cucumber-rails), and its dependencies. Then do the following:
12
13
 
13
- ### Rails 3:
14
+ ## Supported versions
15
+
16
+ Cucumber 2.x - support was dropped from release 0.6.0
17
+ Cucumber 3.x - support is best-effort basis, but tests run on rails 4.2 all the way until 6.1
18
+ Cucumber 4.x - should work with all Rails 5.x versions, tests only run for 5.2 and 6.0
19
+ Cucumber 5.x - all tests pass for rails 5.2, 6.0 and 6.1
20
+ Cucumber 6.x - all tests pass for rails 6.0 and 6.1
21
+
22
+ Please open pull-requests with fixes if you encounter any problems.
23
+ No active development on this gem.
24
+
25
+ ### Rails 5 and Rails 6
14
26
 
15
27
  Add the gem to your Gemfile:
16
28
 
@@ -36,26 +48,6 @@ Run the generator, e.g:
36
48
  rails g pickle --paths --email
37
49
  ```
38
50
 
39
- ### For Rails 2:
40
-
41
- Add the following to config/environments/cucumber:
42
-
43
- ```ruby
44
- config.gem 'pickle'
45
- ```
46
-
47
- Install the gem with
48
-
49
- ```shell
50
- rake gems:install RAILS_ENV=cucumber
51
- ```
52
-
53
- Run the generator with:
54
-
55
- ```ruby
56
- script/generate pickle [paths] [email]
57
- ```
58
-
59
51
  ## Resources
60
52
 
61
53
  **GitHub** for code: https://github.com/ianwhite/pickle
@@ -88,7 +80,7 @@ Given a post exists with title: "My Post", body: "My body"
88
80
 
89
81
  ### Using with factory-girl or machinist
90
82
 
91
- But you're using Machinist or FactoryGirl right?! To leverage all of the factories/blueprints you've written, you can just do stuff like
83
+ But you're using Machinist or FactoryBot right?! To leverage all of the factories/blueprints you've written, you can just do stuff like
92
84
 
93
85
  ```gherkin
94
86
  Given a user exists
@@ -107,14 +99,14 @@ In your `features/support/env.rb` add the following lines at the bottom
107
99
  require "#{Rails.root}/spec/blueprints" # or wherever they live
108
100
  ```
109
101
 
110
- #### FactoryGirl: make sure factories are loaded
102
+ #### FactoryBot: make sure factories are loaded
111
103
 
112
104
  In your config/environments/cucumber.rb file, make sure the factory-girl gem is included (unless it's installed as a plugin).
113
105
 
114
- If that doesn't solve loading issues then require your factories.rb file directly in a file called 'features/support/factory_girl.rb'
106
+ If that doesn't solve loading issues then require your factories.rb file directly in a file called 'features/support/factory_bot.rb'
115
107
 
116
108
  ```ruby
117
- # example features/support/factory_girl.rb
109
+ # example features/support/factory_bot.rb
118
110
  require File.dirname(__FILE__) + '/../../spec/factories'
119
111
  ```
120
112
 
@@ -174,7 +166,7 @@ Given a user exists with name: "Fred"
174
166
  Given a user exists with name: "Fred", activated: false
175
167
  ```
176
168
 
177
- This last step could be better expressed by using Machinist/FactoryGirl to create an activated user. Then you can do
169
+ This last step could be better expressed by using Machinist/FactoryBot to create an activated user. Then you can do
178
170
 
179
171
  ```gherkin
180
172
  Given an activated user exists with name: "Fred"