judit-pickle 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. data/.gitignore +6 -0
  2. data/Gemfile +20 -0
  3. data/Gemfile.lock +98 -0
  4. data/History.txt +409 -0
  5. data/License.txt +20 -0
  6. data/README.rdoc +367 -0
  7. data/Rakefile +20 -0
  8. data/Rakefile.d/cucumber.rake +24 -0
  9. data/Rakefile.d/jeweler.rake +23 -0
  10. data/Rakefile.d/rcov.rake +18 -0
  11. data/Rakefile.d/rspec.rake +7 -0
  12. data/Rakefile.d/yard.rake +5 -0
  13. data/Todo.txt +3 -0
  14. data/VERSION +1 -0
  15. data/features/app/app.rb +122 -0
  16. data/features/app/blueprints.rb +11 -0
  17. data/features/app/factories.rb +23 -0
  18. data/features/app/views/notifier/email.erb +1 -0
  19. data/features/app/views/notifier/user_email.erb +6 -0
  20. data/features/email/email.feature +64 -0
  21. data/features/generator/generators.feature +59 -0
  22. data/features/path/models_page.feature +44 -0
  23. data/features/path/named_route_page.feature +10 -0
  24. data/features/pickle/create_from_active_record.feature +76 -0
  25. data/features/pickle/create_from_factory_girl.feature +63 -0
  26. data/features/pickle/create_from_machinist.feature +39 -0
  27. data/features/step_definitions/email_steps.rb +63 -0
  28. data/features/step_definitions/extra_email_steps.rb +7 -0
  29. data/features/step_definitions/fork_steps.rb +4 -0
  30. data/features/step_definitions/generator_steps.rb +46 -0
  31. data/features/step_definitions/path_steps.rb +14 -0
  32. data/features/step_definitions/pickle_steps.rb +100 -0
  33. data/features/step_definitions/raise_error_steps.rb +3 -0
  34. data/features/support/email.rb +21 -0
  35. data/features/support/env.rb +52 -0
  36. data/features/support/paths.rb +47 -0
  37. data/features/support/pickle.rb +26 -0
  38. data/features/support/pickle_app.rb +4 -0
  39. data/init.rb +0 -0
  40. data/lib/generators/pickle_generator.rb +69 -0
  41. data/lib/pickle/adapter.rb +137 -0
  42. data/lib/pickle/adapters/active_record.rb +57 -0
  43. data/lib/pickle/adapters/data_mapper.rb +42 -0
  44. data/lib/pickle/adapters/mongoid.rb +44 -0
  45. data/lib/pickle/config.rb +49 -0
  46. data/lib/pickle/email/parser.rb +18 -0
  47. data/lib/pickle/email/world.rb +13 -0
  48. data/lib/pickle/email.rb +77 -0
  49. data/lib/pickle/parser/matchers.rb +87 -0
  50. data/lib/pickle/parser.rb +65 -0
  51. data/lib/pickle/path/world.rb +5 -0
  52. data/lib/pickle/path.rb +45 -0
  53. data/lib/pickle/session/parser.rb +34 -0
  54. data/lib/pickle/session.rb +205 -0
  55. data/lib/pickle/version.rb +9 -0
  56. data/lib/pickle/world.rb +14 -0
  57. data/lib/pickle.rb +26 -0
  58. data/pickle.gemspec +134 -0
  59. data/rails_generators/pickle/pickle_generator.rb +33 -0
  60. data/rails_generators/pickle/templates/email.rb +21 -0
  61. data/rails_generators/pickle/templates/email_steps.rb +63 -0
  62. data/rails_generators/pickle/templates/paths.rb +47 -0
  63. data/rails_generators/pickle/templates/pickle.rb +28 -0
  64. data/rails_generators/pickle/templates/pickle_steps.rb +100 -0
  65. data/spec/pickle/adapter_spec.rb +186 -0
  66. data/spec/pickle/config_spec.rb +109 -0
  67. data/spec/pickle/email/parser_spec.rb +51 -0
  68. data/spec/pickle/email_spec.rb +166 -0
  69. data/spec/pickle/parser/matchers_spec.rb +70 -0
  70. data/spec/pickle/parser_spec.rb +161 -0
  71. data/spec/pickle/path_spec.rb +101 -0
  72. data/spec/pickle/session_spec.rb +434 -0
  73. data/spec/pickle_spec.rb +24 -0
  74. data/spec/spec_helper.rb +8 -0
  75. metadata +199 -0
@@ -0,0 +1,434 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ # TODO: remove this and push AR stuff into ORM adapter
4
+ module ActiveRecord
5
+ class Base
6
+ end
7
+ end
8
+
9
+ module DataMapper
10
+ class Model
11
+ end
12
+ end
13
+
14
+ describe Pickle::Session do
15
+ include Pickle::Session
16
+
17
+ let :user_class do
18
+ mock("User class", :name => 'User')
19
+ end
20
+
21
+ let :user do
22
+ mock("user", :class => user_class, :id => 1)
23
+ end
24
+
25
+ let :user_factory do
26
+ Pickle::Adapter::Orm.new(user_class)
27
+ end
28
+
29
+ before do
30
+ config.stub(:factories).and_return('user' => user_factory)
31
+ end
32
+
33
+ describe "Pickle::Session proxy missing methods to parser", :shared => true do
34
+ it "should forward to pickle_parser it responds_to them" do
35
+ subject.pickle_parser.should_receive(:parse_model)
36
+ subject.parse_model
37
+ end
38
+
39
+ it "should raise error if pickle_parser don't know about em" do
40
+ lambda { subject.parse_infinity }.should raise_error
41
+ end
42
+ end
43
+
44
+ describe "including Pickle::Session" do
45
+ subject do
46
+ self
47
+ end
48
+
49
+ it_should_behave_like "Pickle::Session proxy missing methods to parser"
50
+ end
51
+
52
+ describe "extending Pickle::Session" do
53
+ subject do
54
+ returning Object.new do |object|
55
+ object.extend Pickle::Session
56
+ end
57
+ end
58
+
59
+ it_should_behave_like "Pickle::Session proxy missing methods to parser"
60
+ end
61
+
62
+ describe "after storing a single user", :shared => true do
63
+ it "created_models('user') should be array containing the original user" do
64
+ created_models('user').should == [user]
65
+ end
66
+
67
+ describe "the original user should be retrievable with" do
68
+ it "created_model('the user')" do
69
+ created_model('the user').should == user
70
+ end
71
+
72
+ it "created_model('1st user')" do
73
+ created_model('1st user').should == user
74
+ end
75
+
76
+ it "created_model('last user')" do
77
+ created_model('last user').should == user
78
+ end
79
+ end
80
+
81
+ describe "(found from db)" do
82
+ let :user_from_db do
83
+ returning user.dup do |from_db|
84
+ from_db.stub!(:id).and_return(100)
85
+ end
86
+ end
87
+
88
+ before do
89
+ Pickle::Adapter.stub!(:get_model).with(user_class, 100).and_return(user_from_db)
90
+ end
91
+
92
+ it "models('user') should be array containing user" do
93
+ models('user').should == [user_from_db]
94
+ end
95
+
96
+ describe "user should be retrievable with" do
97
+ it "model('the user')" do
98
+ model('the user').should == user_from_db
99
+ end
100
+
101
+ it "model('1st user')" do
102
+ model('1st user').should == user_from_db
103
+ end
104
+
105
+ it "model('last user')" do
106
+ model('last user').should == user_from_db
107
+ end
108
+
109
+ it "model!('last user')" do
110
+ model('last user').should == user_from_db
111
+ end
112
+ end
113
+ end
114
+ end
115
+
116
+ describe "#create_model" do
117
+ before do
118
+ user_factory.stub!(:create).and_return(user)
119
+ end
120
+
121
+ describe "('a user')" do
122
+ it "should call user_factory.create({})" do
123
+ user_factory.should_receive(:create).with({})
124
+ create_model('a user')
125
+ end
126
+
127
+ describe "after create," do
128
+ before { create_model('a user') }
129
+
130
+ it_should_behave_like "after storing a single user"
131
+ end
132
+ end
133
+
134
+ describe "('1 user', 'foo: \"bar\", baz: \"bing bong\"')" do
135
+ it "should call user_factory.create({'foo' => 'bar', 'baz' => 'bing bong'})" do
136
+ user_factory.should_receive(:create).with({'foo' => 'bar', 'baz' => 'bing bong'})
137
+ create_model('1 user', 'foo: "bar", baz: "bing bong"')
138
+ end
139
+
140
+ describe "after create," do
141
+ before { create_model('1 user', 'foo: "bar", baz: "bing bong"') }
142
+
143
+ it_should_behave_like "after storing a single user"
144
+ end
145
+ end
146
+
147
+ describe "('an user: \"fred\")" do
148
+ it "should call user_factory.create({})" do
149
+ user_factory.should_receive(:create).with({})
150
+ create_model('an user: "fred"')
151
+ end
152
+
153
+ describe "after create," do
154
+ before { create_model('an user: "fred"') }
155
+
156
+ it_should_behave_like "after storing a single user"
157
+
158
+ it "created_model('the user: \"fred\"') should retrieve the user" do
159
+ created_model('the user: "fred"').should == user
160
+ end
161
+
162
+ it "created_model?('the user: \"shirl\"') should be false" do
163
+ created_model?('the user: "shirl"').should == false
164
+ end
165
+
166
+ it "model?('the user: \"shirl\"') should be false" do
167
+ model?('the user: "shirl"').should == false
168
+ end
169
+ end
170
+ end
171
+
172
+ describe "with hash" do
173
+ it "should call user_factory.create({'foo' => 'bar'})" do
174
+ user_factory.should_receive(:create).with({'foo' => 'bar'})
175
+ create_model('a user', {'foo' => 'bar'}).should == user
176
+ end
177
+
178
+ describe "after create," do
179
+ before { create_model('a user', {'foo' => 'bar'}) }
180
+
181
+ it_should_behave_like "after storing a single user"
182
+ end
183
+ end
184
+ end
185
+
186
+ describe '#find_model' do
187
+ before do
188
+ Pickle::Adapter.stub!(:find_first_model).with(user_class, anything).and_return(user)
189
+ end
190
+
191
+ it "should call user_class.find :first, :conditions => {<fields>}" do
192
+ find_model('a user', 'hair: "pink"').should == user
193
+ end
194
+
195
+ describe "after find," do
196
+ before { find_model('a user', 'hair: "pink"') }
197
+
198
+ it_should_behave_like "after storing a single user"
199
+ end
200
+
201
+ describe "with hash" do
202
+ it "should call user_class.find('user', {'foo' => 'bar'})" do
203
+ find_model('a user', {'foo' => 'bar'})
204
+ end
205
+
206
+ describe "after find," do
207
+ before { find_model('a user', {'foo' => 'bar'}) }
208
+
209
+ it_should_behave_like "after storing a single user"
210
+ end
211
+ end
212
+ end
213
+
214
+ describe "create and find using plural_factory and table" do
215
+ context "when given a table without a matching pickle ref column" do
216
+ let :table do
217
+ mock(:hashes => [{'name' => 'Fred'}, {'name' => 'Betty'}])
218
+ end
219
+
220
+ it "#create_models_from_table(<plural factory>, <table>) should call create_model for each of the table hashes with plain factory name and return the models" do
221
+ should_receive(:create_model).with("user", 'name' => "Fred").once.ordered.and_return(:fred)
222
+ should_receive(:create_model).with("user", 'name' => "Betty").once.ordered.and_return(:betty)
223
+ create_models_from_table("users", table).should == [:fred, :betty]
224
+ end
225
+
226
+ it "#find_models_from_table(<plural factory>, <table>) should call find_model for each of the table hashes with plain factory name and return the models" do
227
+ should_receive(:find_model).with("user", 'name' => "Fred").once.ordered.and_return(:fred)
228
+ should_receive(:find_model).with("user", 'name' => "Betty").once.ordered.and_return(:betty)
229
+ find_models_from_table("users", table).should == [:fred, :betty]
230
+ end
231
+ end
232
+
233
+ context "when given a table with a matching pickle ref column" do
234
+ let :table do
235
+ mock(:hashes => [{'user' => "fred", 'name' => 'Fred'}, {'user' => "betty", 'name' => 'Betty'}])
236
+ end
237
+
238
+ it "#create_models_from_table(<plural factory>, <table>) should call create_model for each of the table hashes with labelled pickle ref" do
239
+ should_receive(:create_model).with("user \"fred\"", 'name' => "Fred").once.ordered.and_return(:fred)
240
+ should_receive(:create_model).with("user \"betty\"", 'name' => "Betty").once.ordered.and_return(:betty)
241
+ create_models_from_table("users", table).should == [:fred, :betty]
242
+ end
243
+
244
+ it "#find_models_from_table(<plural factory>, <table>) should call find_model for each of the table hashes with labelled pickle ref" do
245
+ should_receive(:find_model).with("user \"fred\"", 'name' => "Fred").once.ordered.and_return(:fred)
246
+ should_receive(:find_model).with("user \"betty\"", 'name' => "Betty").once.ordered.and_return(:betty)
247
+ find_models_from_table("users", table).should == [:fred, :betty]
248
+ end
249
+ end
250
+ end
251
+
252
+ describe "#find_model!" do
253
+ it "should call find_model" do
254
+ should_receive(:find_model).with('name', 'fields').and_return(user)
255
+ find_model!('name', 'fields')
256
+ end
257
+
258
+ it "should call raise error if find_model returns nil" do
259
+ should_receive(:find_model).with('name', 'fields').and_return(nil)
260
+ lambda { find_model!('name', 'fields') }.should raise_error(Pickle::Session::ModelNotKnownError)
261
+ end
262
+ end
263
+
264
+ describe "#find_models" do
265
+ before do
266
+ Pickle::Adapter.stub!(:find_all_models).with(user_class, anything).and_return([user])
267
+ end
268
+
269
+ it "should call User.find :all, :conditions => {'hair' => 'pink'}" do
270
+ find_models('user', 'hair: "pink"').should == [user]
271
+ end
272
+
273
+ describe "after find," do
274
+ before { find_models('user', 'hair: "pink"') }
275
+
276
+ it_should_behave_like "after storing a single user"
277
+ end
278
+
279
+ it "should cope with spaces in the factory name (ie. it should make it canonical)" do
280
+ pickle_parser.stub!(:canonical).and_return('user')
281
+ pickle_parser.should_receive(:canonical).with('u ser').and_return('user')
282
+ find_models('u ser', 'hair: "pink"').should == [user]
283
+ end
284
+ end
285
+
286
+ describe 'creating \'a super admin: "fred"\', then \'a user: "shirl"\', \'then 1 super_admin\' (super_admin is factory that returns users)' do
287
+ let(:fred) { mock("fred", :class => user_class, :id => 2) }
288
+ let(:shirl) { mock("shirl", :class => user_class, :id => 3) }
289
+ let(:noname) { mock("noname", :class => user_class, :is => 4) }
290
+
291
+ let(:super_admin_factory) do
292
+ Pickle::Adapter::FactoryGirl.new(mock(:build_class => user_class, :factory_name => :super_admin))
293
+ end
294
+
295
+ before do
296
+ config.stub(:factories).and_return(user_factory.name => user_factory, super_admin_factory.name => super_admin_factory)
297
+ user_factory.stub(:create).and_return(shirl)
298
+ super_admin_factory.stub(:create).and_return(fred, noname)
299
+ end
300
+
301
+ def do_create_users
302
+ create_model('a super admin: "fred"')
303
+ create_model('a user: "shirl"')
304
+ create_model('1 super_admin')
305
+ end
306
+
307
+ it "should call Factory.create with <'super_admin'>, <'user'>, <'super_admin'>" do
308
+ super_admin_factory.should_receive(:create).with({}).twice
309
+ user_factory.should_receive(:create).with({}).once
310
+ do_create_users
311
+ end
312
+
313
+ describe "after create," do
314
+ before do
315
+ do_create_users
316
+ end
317
+
318
+ it "created_models('user') should == [fred, shirl, noname]" do
319
+ created_models('user').should == [fred, shirl, noname]
320
+ end
321
+
322
+ it "created_models('super_admin') should == [fred, noname]" do
323
+ created_models('super_admin').should == [fred, noname]
324
+ end
325
+
326
+ describe "#created_model" do
327
+ it "'that user' should be noname (the last user created - as super_admins are users)" do
328
+ created_model('that user').should == noname
329
+ end
330
+
331
+ it "'the super admin' should be noname (the last super admin created)" do
332
+ created_model('that super admin').should == noname
333
+ end
334
+
335
+ it "'the 1st super admin' should be fred" do
336
+ created_model('the 1st super admin').should == fred
337
+ end
338
+
339
+ it "'the first user' should be fred" do
340
+ created_model('the first user').should == fred
341
+ end
342
+
343
+ it "'the 2nd user' should be shirl" do
344
+ created_model('the 2nd user').should == shirl
345
+ end
346
+
347
+ it "'the last user' should be noname" do
348
+ created_model('the last user').should == noname
349
+ end
350
+
351
+ it "'the user: \"fred\" should be fred" do
352
+ created_model('the user: "fred"').should == fred
353
+ end
354
+
355
+ it "'the user: \"shirl\" should be shirl" do
356
+ created_model('the user: "shirl"').should == shirl
357
+ end
358
+ end
359
+ end
360
+ end
361
+
362
+ describe "when 'the user: \"me\"' exists and there is a mapping from 'I', 'myself' => 'user: \"me\"" do
363
+ before do
364
+ self.pickle_parser = Pickle::Parser.new(:config => Pickle::Config.new {|c| c.map 'I', 'myself', :to => 'user: "me"'})
365
+ config.stub(:factories).and_return('user' => user_factory)
366
+ Pickle::Adapter.stub!(:get_model).with(user_class, anything).and_return(user)
367
+ user_factory.stub!(:create).and_return(user)
368
+ create_model('the user: "me"')
369
+ end
370
+
371
+ it 'model("I") should return the user' do
372
+ model('I').should == user
373
+ end
374
+
375
+ it 'model("myself") should return the user' do
376
+ model('myself').should == user
377
+ end
378
+
379
+ it "#parser.parse_fields 'author: user \"JIM\"' should raise Error, as model deos not refer" do
380
+ lambda { pickle_parser.parse_fields('author: user "JIM"') }.should raise_error
381
+ end
382
+
383
+ it "#parser.parse_fields 'author: the user' should return {\"author\" => <user>}" do
384
+ pickle_parser.parse_fields('author: the user').should == {"author" => user}
385
+ end
386
+
387
+ it "#parser.parse_fields 'author: myself' should return {\"author\" => <user>}" do
388
+ pickle_parser.parse_fields('author: myself').should == {"author" => user}
389
+ end
390
+
391
+ it "#parser.parse_fields 'author: the user, approver: I, rating: \"5\"' should return {'author' => <user>, 'approver' => <user>, 'rating' => '5'}" do
392
+ pickle_parser.parse_fields('author: the user, approver: I, rating: "5"').should == {'author' => user, 'approver' => user, 'rating' => '5'}
393
+ end
394
+
395
+ it "#parser.parse_fields 'author: user: \"me\", approver: \"\"' should return {'author' => <user>, 'approver' => \"\"}" do
396
+ pickle_parser.parse_fields('author: user: "me", approver: ""').should == {'author' => user, 'approver' => ""}
397
+ end
398
+ end
399
+
400
+ describe "convert_models_to_attributes(ar_class, :user => <a user>)" do
401
+ before do
402
+ user.stub(:is_a?).with(ActiveRecord::Base).and_return(true)
403
+ end
404
+
405
+ describe "(when ar_class has column 'user_id')" do
406
+ let :ar_class do
407
+ mock('ActiveRecord', :column_names => ['user_id'], :const_get => ActiveRecord::Base::PickleAdapter)
408
+ end
409
+
410
+ it "should return {'user_id' => <the user.id>}" do
411
+ convert_models_to_attributes(ar_class, :user => user).should == {'user_id' => user.id}
412
+ end
413
+ end
414
+
415
+ describe "(when ar_class has columns 'user_id', 'user_type')" do
416
+ let :ar_class do
417
+ mock('ActiveRecord', :column_names => ['user_id', 'user_type'], :const_get => ActiveRecord::Base::PickleAdapter)
418
+ end
419
+
420
+ it "should return {'user_id' => <the user.id>, 'user_type' => <the user.base_class>}" do
421
+ user.class.should_receive(:base_class).and_return(mock('User base class', :name => 'UserBase'))
422
+ convert_models_to_attributes(ar_class, :user => user).should == {'user_id' => user.id, 'user_type' => 'UserBase'}
423
+ end
424
+ end
425
+ end
426
+
427
+ it "#model!('unknown') should raise informative error message" do
428
+ lambda { model!('unknown') }.should raise_error(Pickle::Session::ModelNotKnownError, "The model: 'unknown' is not known in this scenario. Use #create_model to create, or #find_model to find, and store a reference in this scenario.")
429
+ end
430
+
431
+ it "#created_model!('unknown') should raise informative error message" do
432
+ lambda { created_model!('unknown') }.should raise_error(Pickle::Session::ModelNotKnownError)
433
+ end
434
+ end
@@ -0,0 +1,24 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe Pickle do
4
+ it ".config should be same object on multiple calls" do
5
+ Pickle.config.should == Pickle.config
6
+ end
7
+
8
+ it ".configure should configure the .config object" do
9
+ Pickle.config.should_receive(:foo).with(:bar)
10
+ Pickle.configure do |c|
11
+ c.foo :bar
12
+ end
13
+ end
14
+
15
+ it ".parser should create a parser with the default config" do
16
+ Pickle.instance_variable_set('@parser', nil)
17
+ Pickle::Parser.should_receive(:new).with(:config => Pickle.config)
18
+ Pickle.parser
19
+ end
20
+
21
+ it ".parser should be same object on multiple calls" do
22
+ Pickle.parser.should == Pickle.parser
23
+ end
24
+ end
@@ -0,0 +1,8 @@
1
+ require 'rubygems'
2
+ require 'spec'
3
+ require 'active_support'
4
+ require 'active_record'
5
+
6
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
7
+ require 'pickle'
8
+ require 'pickle/adapters/active_record'
metadata ADDED
@@ -0,0 +1,199 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: judit-pickle
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 4
8
+ - 2
9
+ version: 0.4.2
10
+ platform: ruby
11
+ authors:
12
+ - Ian White
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-08-23 00:00:00 +01:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: rspec
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 1
30
+ - 3
31
+ version: "1.3"
32
+ type: :runtime
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: cucumber
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ segments:
43
+ - 0
44
+ - 8
45
+ version: "0.8"
46
+ type: :runtime
47
+ version_requirements: *id002
48
+ - !ruby/object:Gem::Dependency
49
+ name: yard
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ segments:
57
+ - 0
58
+ version: "0"
59
+ type: :runtime
60
+ version_requirements: *id003
61
+ - !ruby/object:Gem::Dependency
62
+ name: rake
63
+ prerelease: false
64
+ requirement: &id004 !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ segments:
70
+ - 0
71
+ version: "0"
72
+ type: :runtime
73
+ version_requirements: *id004
74
+ description: Easy model creation and reference in your cucumber features
75
+ email: ian.w.white@gmail.com
76
+ executables: []
77
+
78
+ extensions: []
79
+
80
+ extra_rdoc_files:
81
+ - README.rdoc
82
+ files:
83
+ - .gitignore
84
+ - Gemfile
85
+ - Gemfile.lock
86
+ - History.txt
87
+ - License.txt
88
+ - README.rdoc
89
+ - Rakefile
90
+ - Rakefile.d/cucumber.rake
91
+ - Rakefile.d/jeweler.rake
92
+ - Rakefile.d/rcov.rake
93
+ - Rakefile.d/rspec.rake
94
+ - Rakefile.d/yard.rake
95
+ - Todo.txt
96
+ - VERSION
97
+ - features/app/app.rb
98
+ - features/app/blueprints.rb
99
+ - features/app/factories.rb
100
+ - features/app/views/notifier/email.erb
101
+ - features/app/views/notifier/user_email.erb
102
+ - features/email/email.feature
103
+ - features/generator/generators.feature
104
+ - features/path/models_page.feature
105
+ - features/path/named_route_page.feature
106
+ - features/pickle/create_from_active_record.feature
107
+ - features/pickle/create_from_factory_girl.feature
108
+ - features/pickle/create_from_machinist.feature
109
+ - features/step_definitions/email_steps.rb
110
+ - features/step_definitions/extra_email_steps.rb
111
+ - features/step_definitions/fork_steps.rb
112
+ - features/step_definitions/generator_steps.rb
113
+ - features/step_definitions/path_steps.rb
114
+ - features/step_definitions/pickle_steps.rb
115
+ - features/step_definitions/raise_error_steps.rb
116
+ - features/support/email.rb
117
+ - features/support/env.rb
118
+ - features/support/paths.rb
119
+ - features/support/pickle.rb
120
+ - features/support/pickle_app.rb
121
+ - init.rb
122
+ - lib/generators/pickle_generator.rb
123
+ - lib/pickle.rb
124
+ - lib/pickle/adapter.rb
125
+ - lib/pickle/adapters/active_record.rb
126
+ - lib/pickle/adapters/data_mapper.rb
127
+ - lib/pickle/adapters/mongoid.rb
128
+ - lib/pickle/config.rb
129
+ - lib/pickle/email.rb
130
+ - lib/pickle/email/parser.rb
131
+ - lib/pickle/email/world.rb
132
+ - lib/pickle/parser.rb
133
+ - lib/pickle/parser/matchers.rb
134
+ - lib/pickle/path.rb
135
+ - lib/pickle/path/world.rb
136
+ - lib/pickle/session.rb
137
+ - lib/pickle/session/parser.rb
138
+ - lib/pickle/version.rb
139
+ - lib/pickle/world.rb
140
+ - pickle.gemspec
141
+ - rails_generators/pickle/pickle_generator.rb
142
+ - rails_generators/pickle/templates/email.rb
143
+ - rails_generators/pickle/templates/email_steps.rb
144
+ - rails_generators/pickle/templates/paths.rb
145
+ - rails_generators/pickle/templates/pickle.rb
146
+ - rails_generators/pickle/templates/pickle_steps.rb
147
+ - spec/pickle/adapter_spec.rb
148
+ - spec/pickle/config_spec.rb
149
+ - spec/pickle/email/parser_spec.rb
150
+ - spec/pickle/email_spec.rb
151
+ - spec/pickle/parser/matchers_spec.rb
152
+ - spec/pickle/parser_spec.rb
153
+ - spec/pickle/path_spec.rb
154
+ - spec/pickle/session_spec.rb
155
+ - spec/pickle_spec.rb
156
+ - spec/spec_helper.rb
157
+ has_rdoc: true
158
+ homepage: http://github.com/ianwhite/pickle/tree
159
+ licenses: []
160
+
161
+ post_install_message:
162
+ rdoc_options:
163
+ - --charset=UTF-8
164
+ require_paths:
165
+ - lib
166
+ required_ruby_version: !ruby/object:Gem::Requirement
167
+ none: false
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ segments:
172
+ - 0
173
+ version: "0"
174
+ required_rubygems_version: !ruby/object:Gem::Requirement
175
+ none: false
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ segments:
180
+ - 0
181
+ version: "0"
182
+ requirements: []
183
+
184
+ rubyforge_project:
185
+ rubygems_version: 1.3.7
186
+ signing_key:
187
+ specification_version: 3
188
+ summary: Easy model creation and reference in your cucumber features
189
+ test_files:
190
+ - spec/pickle/adapter_spec.rb
191
+ - spec/pickle/config_spec.rb
192
+ - spec/pickle/email/parser_spec.rb
193
+ - spec/pickle/email_spec.rb
194
+ - spec/pickle/parser/matchers_spec.rb
195
+ - spec/pickle/parser_spec.rb
196
+ - spec/pickle/path_spec.rb
197
+ - spec/pickle/session_spec.rb
198
+ - spec/pickle_spec.rb
199
+ - spec/spec_helper.rb