fabrication 1.0.0 → 1.0.1
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.
- data/README.markdown +1 -2
- data/lib/fabrication/generator/sequel.rb +11 -0
- data/lib/fabrication/schematic.rb +2 -1
- data/lib/fabrication/version.rb +1 -1
- data/lib/rails/generators/fabrication/cucumber_steps/templates/fabrication_steps.rb +12 -0
- data/spec/fabrication/generator/active_record_spec.rb +0 -3
- data/spec/fabrication/schematic_spec.rb +1 -1
- data/spec/fabrication_spec.rb +61 -154
- data/spec/fabricators/active_record_fabricator.rb +12 -0
- data/spec/fabricators/mongoid_fabricator.rb +12 -0
- data/spec/fabricators/plain_old_ruby_object_fabricator.rb +12 -0
- data/spec/fabricators/sequel_fabricator.rb +15 -0
- data/spec/spec_helper.rb +2 -3
- data/spec/support/active_record.rb +22 -0
- data/spec/support/mongoid.rb +19 -0
- data/spec/support/{helper_objects.rb → plain_old_ruby_objects.rb} +19 -0
- data/spec/support/sequel.rb +9 -5
- data/spec/support/sequel_migrations/001_create_tables.rb +22 -0
- metadata +50 -25
data/README.markdown
CHANGED
@@ -10,5 +10,4 @@ Fabrication is developed against Ruby 1.8.7 and 1.9.2.
|
|
10
10
|
|
11
11
|
## Documentation
|
12
12
|
|
13
|
-
Please see the Fabrication website for up-to-date documentation:
|
14
|
-
{fabricationgem.org}[http://fabricationgem.org]
|
13
|
+
Please see the Fabrication website for up-to-date documentation: http://fabricationgem.org
|
@@ -2,6 +2,7 @@ class Fabrication::Schematic
|
|
2
2
|
|
3
3
|
GENERATORS = [
|
4
4
|
Fabrication::Generator::ActiveRecord,
|
5
|
+
Fabrication::Generator::Sequel,
|
5
6
|
Fabrication::Generator::Base
|
6
7
|
]
|
7
8
|
|
@@ -114,7 +115,7 @@ class Fabrication::Schematic
|
|
114
115
|
name = name.to_s
|
115
116
|
name = name.singularize if name.respond_to?(:singularize)
|
116
117
|
params[:count] ||= 1 if !params[:count] && name != name.to_s
|
117
|
-
Proc.new { Fabricate(name.to_sym) }
|
118
|
+
Proc.new { Fabricate(params[:fabricator] || name.to_sym) }
|
118
119
|
end
|
119
120
|
|
120
121
|
def to_hash(object)
|
data/lib/fabrication/version.rb
CHANGED
@@ -58,6 +58,10 @@ module FabricationMethods
|
|
58
58
|
{ parent_class_name => parent_instance }
|
59
59
|
end
|
60
60
|
|
61
|
+
def class_from_model_name(model_name)
|
62
|
+
eval(dehumanize(model_name).singularize.classify)
|
63
|
+
end
|
64
|
+
|
61
65
|
end
|
62
66
|
|
63
67
|
World(FabricationMethods)
|
@@ -89,3 +93,11 @@ Given /^(?:that|those) (.*) belongs? to that (.*)$/ do |child_or_children, paren
|
|
89
93
|
child_instance.save
|
90
94
|
end
|
91
95
|
end
|
96
|
+
|
97
|
+
Then /^I should see (\d+) ([^"]*) in the database$/ do |count, model_name|
|
98
|
+
get_class(dehumanize(model_name)).count.should == count.to_i
|
99
|
+
end
|
100
|
+
|
101
|
+
Then /^I should see the following (.*) in the database:$/ do |model_name, table|
|
102
|
+
get_class(dehumanize(model_name)).where(table.rows_hash).count.should == 1
|
103
|
+
end
|
@@ -2,9 +2,6 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Fabrication::Generator::ActiveRecord do
|
4
4
|
|
5
|
-
before(:all) { TestMigration.up }
|
6
|
-
after(:all) { TestMigration.down }
|
7
|
-
|
8
5
|
describe ".supports?" do
|
9
6
|
subject { Fabrication::Generator::ActiveRecord }
|
10
7
|
it "returns true for active record objects" do
|
@@ -23,7 +23,7 @@ describe Fabrication::Schematic do
|
|
23
23
|
end
|
24
24
|
context "for a sequel object" do
|
25
25
|
it "uses the base generator" do
|
26
|
-
Fabrication::Schematic.new(
|
26
|
+
Fabrication::Schematic.new(ParentSequelModel).generator.should == Fabrication::Generator::Sequel
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
data/spec/fabrication_spec.rb
CHANGED
@@ -1,59 +1,79 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
shared_examples 'something fabricatable' do
|
4
|
+
subject { Fabricate(fabricator_name) }
|
5
|
+
|
6
|
+
context 'defaults from fabricator' do
|
7
|
+
its(:dynamic_field) { should == 'dynamic content' }
|
8
|
+
its(:nil_field) { should be_nil }
|
9
|
+
its(:number_field) { should == 5 }
|
10
|
+
its(:string_field) { should == 'content' }
|
11
|
+
end
|
6
12
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
13
|
+
context 'overriding at fabricate time' do
|
14
|
+
subject do
|
15
|
+
Fabricate(
|
16
|
+
fabricator_name,
|
17
|
+
:string_field => 'new content',
|
18
|
+
:number_field => 10,
|
19
|
+
:nil_field => nil
|
20
|
+
) do
|
21
|
+
dynamic_field { 'new dynamic content' }
|
12
22
|
end
|
13
23
|
end
|
24
|
+
its('collection_field.size') { should == 2 }
|
25
|
+
its('collection_field.first.number_field') { should == 10 }
|
26
|
+
its('collection_field.last.number_field') { should == 10 }
|
27
|
+
its(:dynamic_field) { should == 'new dynamic content' }
|
28
|
+
its(:nil_field) { should be_nil }
|
29
|
+
its(:number_field) { should == 10 }
|
30
|
+
its(:string_field) { should == 'new content' }
|
31
|
+
end
|
14
32
|
|
15
|
-
|
16
|
-
person.first_name.should == 'John'
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'has an overridden last name' do
|
20
|
-
person.last_name.should == 'Awesome'
|
21
|
-
end
|
22
|
-
|
33
|
+
context 'state of the object' do
|
23
34
|
it 'generates a fresh object every time' do
|
24
|
-
Fabricate(
|
25
|
-
end
|
26
|
-
|
27
|
-
it "has the latitude" do
|
28
|
-
location.lat.should == 35
|
35
|
+
Fabricate(fabricator_name).should_not == subject
|
29
36
|
end
|
30
37
|
|
31
|
-
it
|
32
|
-
|
33
|
-
|
38
|
+
it { should be_persisted }
|
39
|
+
its('collection_field.first') { should be_persisted }
|
40
|
+
its('collection_field.last') { should be_persisted }
|
41
|
+
end
|
34
42
|
|
35
|
-
|
36
|
-
|
43
|
+
context 'attributes for' do
|
44
|
+
subject { Fabricate.attributes_for(fabricator_name) }
|
45
|
+
it { should be_kind_of(HashWithIndifferentAccess) }
|
46
|
+
it 'serializes the attributes' do
|
47
|
+
should include({
|
48
|
+
:dynamic_field => 'dynamic content',
|
49
|
+
:nil_field => nil,
|
50
|
+
:number_field => 5,
|
51
|
+
:string_field => 'content'
|
52
|
+
})
|
37
53
|
end
|
38
|
-
|
39
54
|
end
|
55
|
+
end
|
40
56
|
|
41
|
-
|
42
|
-
|
43
|
-
let(:person) { Fabricate(:person) }
|
57
|
+
describe Fabrication do
|
44
58
|
|
45
|
-
|
46
|
-
|
47
|
-
|
59
|
+
context 'plain old ruby objects' do
|
60
|
+
let(:fabricator_name) { :parent_ruby_object }
|
61
|
+
it_should_behave_like 'something fabricatable'
|
62
|
+
end
|
48
63
|
|
49
|
-
|
50
|
-
|
51
|
-
|
64
|
+
context 'active_record models' do
|
65
|
+
let(:fabricator_name) { :parent_active_record_model }
|
66
|
+
it_should_behave_like 'something fabricatable'
|
67
|
+
end
|
52
68
|
|
53
|
-
|
54
|
-
|
55
|
-
|
69
|
+
context 'mongoid documents' do
|
70
|
+
let(:fabricator_name) { :parent_mongoid_document }
|
71
|
+
it_should_behave_like 'something fabricatable'
|
72
|
+
end
|
56
73
|
|
74
|
+
context 'sequel models' do
|
75
|
+
let(:fabricator_name) { :parent_sequel_model }
|
76
|
+
it_should_behave_like 'something fabricatable'
|
57
77
|
end
|
58
78
|
|
59
79
|
context 'when the class requires a constructor' do
|
@@ -72,58 +92,6 @@ describe Fabrication do
|
|
72
92
|
its(:stuff) { should == "things" }
|
73
93
|
end
|
74
94
|
|
75
|
-
context "when referring to other fabricators" do
|
76
|
-
|
77
|
-
let(:person) { Fabricate(:person) }
|
78
|
-
|
79
|
-
it "has the latitude" do
|
80
|
-
person.location.lat.should == 35
|
81
|
-
end
|
82
|
-
|
83
|
-
it "has the longitude" do
|
84
|
-
person.location.lng.should == 40
|
85
|
-
end
|
86
|
-
|
87
|
-
context "with a count" do
|
88
|
-
|
89
|
-
context "of one" do
|
90
|
-
|
91
|
-
let(:greyhound) do
|
92
|
-
Fabricate(:greyhound) do
|
93
|
-
locations(:count => 1)
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
it "should have one location" do
|
98
|
-
greyhound.locations.size.should == 1
|
99
|
-
greyhound.locations.first.lat.should == 35
|
100
|
-
greyhound.locations.first.lng.should == 40
|
101
|
-
end
|
102
|
-
|
103
|
-
end
|
104
|
-
|
105
|
-
context "of two" do
|
106
|
-
|
107
|
-
let(:greyhound) do
|
108
|
-
Fabricate(:greyhound) do
|
109
|
-
locations(:count => 2)
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
it "should have two locations" do
|
114
|
-
greyhound.locations.size.should == 2
|
115
|
-
greyhound.locations.each do |loc|
|
116
|
-
loc.lat.should == 35
|
117
|
-
loc.lng.should == 40
|
118
|
-
end
|
119
|
-
end
|
120
|
-
|
121
|
-
end
|
122
|
-
|
123
|
-
end
|
124
|
-
|
125
|
-
end
|
126
|
-
|
127
95
|
context 'with the generation parameter' do
|
128
96
|
|
129
97
|
let(:person) do
|
@@ -293,43 +261,30 @@ describe Fabrication do
|
|
293
261
|
end
|
294
262
|
|
295
263
|
describe '.clear_definitions' do
|
296
|
-
|
297
|
-
|
298
|
-
Fabrication.clear_definitions
|
299
|
-
end
|
300
|
-
|
301
|
-
after(:all) do
|
302
|
-
Fabrication::Support.find_definitions
|
303
|
-
end
|
264
|
+
before { Fabrication.clear_definitions }
|
265
|
+
after { Fabrication::Support.find_definitions }
|
304
266
|
|
305
267
|
it 'should not generate authors' do
|
306
268
|
Fabrication::Fabricator.schematics.has_key?(:author).should be_false
|
307
269
|
end
|
308
|
-
|
309
270
|
end
|
310
271
|
|
311
272
|
context 'when defining a fabricator twice' do
|
312
|
-
|
313
273
|
it 'throws an error' do
|
314
274
|
lambda { Fabricator(:author) {} }.should raise_error(Fabrication::DuplicateFabricatorError)
|
315
275
|
end
|
316
|
-
|
317
276
|
end
|
318
277
|
|
319
278
|
context "when defining a fabricator for a class that doesn't exist" do
|
320
|
-
|
321
279
|
it 'throws an error' do
|
322
280
|
lambda { Fabricator(:your_mom) }.should raise_error(Fabrication::UnfabricatableError)
|
323
281
|
end
|
324
|
-
|
325
282
|
end
|
326
283
|
|
327
284
|
context 'when generating from a non-existant fabricator' do
|
328
|
-
|
329
285
|
it 'throws an error' do
|
330
286
|
lambda { Fabricate(:your_mom) }.should raise_error(Fabrication::UnknownFabricatorError)
|
331
287
|
end
|
332
|
-
|
333
288
|
end
|
334
289
|
|
335
290
|
context 'defining a fabricator without a block' do
|
@@ -345,54 +300,6 @@ describe Fabrication do
|
|
345
300
|
|
346
301
|
end
|
347
302
|
|
348
|
-
describe "Fabricate with a block" do
|
349
|
-
|
350
|
-
let(:person) do
|
351
|
-
Fabricate(:person) do
|
352
|
-
age nil
|
353
|
-
first_name "Paul"
|
354
|
-
last_name { "Elliott" }
|
355
|
-
end
|
356
|
-
end
|
357
|
-
|
358
|
-
it 'uses the class matching the passed-in symbol' do
|
359
|
-
person.kind_of?(Person).should be_true
|
360
|
-
end
|
361
|
-
|
362
|
-
it 'has the correct first_name' do
|
363
|
-
person.first_name.should == 'Paul'
|
364
|
-
end
|
365
|
-
|
366
|
-
it 'has the correct last_name' do
|
367
|
-
person.last_name.should == 'Elliott'
|
368
|
-
end
|
369
|
-
|
370
|
-
it 'has the correct age' do
|
371
|
-
person.age.should be_nil
|
372
|
-
end
|
373
|
-
|
374
|
-
end
|
375
|
-
|
376
|
-
describe "Fabricate.attributes_for" do
|
377
|
-
|
378
|
-
let(:person) do
|
379
|
-
Fabricate.attributes_for(:person, :first_name => "John", :last_name => "Smith")
|
380
|
-
end
|
381
|
-
|
382
|
-
it 'has the first name as a parameter' do
|
383
|
-
person['first_name'].should == "John"
|
384
|
-
end
|
385
|
-
|
386
|
-
it 'has the last name as a parameter' do
|
387
|
-
person[:last_name].should == "Smith"
|
388
|
-
end
|
389
|
-
|
390
|
-
it 'has the fabricator provided attributes' do
|
391
|
-
person[:shoes].length.should == 10
|
392
|
-
end
|
393
|
-
|
394
|
-
end
|
395
|
-
|
396
303
|
describe "Fabricate with a sequence" do
|
397
304
|
subject { Fabricate(:sequencer) }
|
398
305
|
|
@@ -1,3 +1,15 @@
|
|
1
|
+
Fabricator(:parent_active_record_model) do
|
2
|
+
collection_field(:count => 2, :fabricator => :child_active_record_model)
|
3
|
+
dynamic_field { 'dynamic content' }
|
4
|
+
nil_field nil
|
5
|
+
number_field 5
|
6
|
+
string_field 'content'
|
7
|
+
end
|
8
|
+
|
9
|
+
Fabricator(:child_active_record_model) do
|
10
|
+
number_field 10
|
11
|
+
end
|
12
|
+
|
1
13
|
# ActiveRecord Objects
|
2
14
|
Fabricator(:division) do
|
3
15
|
name "Division Name"
|
@@ -1,3 +1,15 @@
|
|
1
|
+
Fabricator(:parent_mongoid_document) do
|
2
|
+
collection_field(:count => 2, :fabricator => :child_mongoid_document)
|
3
|
+
dynamic_field { 'dynamic content' }
|
4
|
+
nil_field nil
|
5
|
+
number_field 5
|
6
|
+
string_field 'content'
|
7
|
+
end
|
8
|
+
|
9
|
+
Fabricator(:child_mongoid_document) do
|
10
|
+
number_field 10
|
11
|
+
end
|
12
|
+
|
1
13
|
# Mongoid Documents
|
2
14
|
Fabricator(:author) do
|
3
15
|
name 'George Orwell'
|
@@ -1,3 +1,15 @@
|
|
1
|
+
Fabricator(:parent_ruby_object) do
|
2
|
+
collection_field(:count => 2, :fabricator => :child_ruby_object)
|
3
|
+
dynamic_field { 'dynamic content' }
|
4
|
+
nil_field nil
|
5
|
+
number_field 5
|
6
|
+
string_field 'content'
|
7
|
+
end
|
8
|
+
|
9
|
+
Fabricator(:child_ruby_object) do
|
10
|
+
number_field 10
|
11
|
+
end
|
12
|
+
|
1
13
|
# Plain Ruby Objects
|
2
14
|
Fabricator(:awesome_object, :from => :object)
|
3
15
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
Fabricator(:parent_sequel_model) do
|
2
|
+
dynamic_field { 'dynamic content' }
|
3
|
+
nil_field nil
|
4
|
+
number_field 5
|
5
|
+
string_field 'content'
|
6
|
+
after_create do |parent|
|
7
|
+
2.times do
|
8
|
+
Fabricate(:child_sequel_model, :parent => parent)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
Fabricator(:child_sequel_model) do
|
14
|
+
number_field 10
|
15
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -7,7 +7,6 @@ require 'ffaker'
|
|
7
7
|
Dir[File.expand_path(File.join(File.dirname(__FILE__),'support','**','*.rb'))].each {|f| require f}
|
8
8
|
|
9
9
|
RSpec.configure do |config|
|
10
|
-
config.before(:
|
11
|
-
|
12
|
-
end
|
10
|
+
config.before(:suite) { TestMigration.up }
|
11
|
+
config.before(:all) { clear_mongodb }
|
13
12
|
end
|
@@ -10,6 +10,18 @@ ActiveRecord::Migration.verbose = false
|
|
10
10
|
|
11
11
|
class TestMigration < ActiveRecord::Migration
|
12
12
|
def self.up
|
13
|
+
create_table :child_active_record_models, :force => true do |t|
|
14
|
+
t.column :parent_active_record_model_id, :integer
|
15
|
+
t.column :number_field, :integer
|
16
|
+
end
|
17
|
+
|
18
|
+
create_table :parent_active_record_models, :force => true do |t|
|
19
|
+
t.column :dynamic_field, :string
|
20
|
+
t.column :nil_field, :string
|
21
|
+
t.column :number_field, :integer
|
22
|
+
t.column :string_field, :string
|
23
|
+
end
|
24
|
+
|
13
25
|
create_table :companies, :force => true do |t|
|
14
26
|
t.column :name, :string
|
15
27
|
t.column :city, :string
|
@@ -22,11 +34,21 @@ class TestMigration < ActiveRecord::Migration
|
|
22
34
|
end
|
23
35
|
|
24
36
|
def self.down
|
37
|
+
drop_table :child_active_record_models
|
38
|
+
drop_table :parent_active_record_models
|
25
39
|
drop_table :companies
|
26
40
|
drop_table :divisions
|
27
41
|
end
|
28
42
|
end
|
29
43
|
|
44
|
+
class ChildActiveRecordModel < ActiveRecord::Base
|
45
|
+
belongs_to :parent, :class_name => 'ParentActiveRecordModel'
|
46
|
+
end
|
47
|
+
|
48
|
+
class ParentActiveRecordModel < ActiveRecord::Base
|
49
|
+
has_many :collection_field, :class_name => 'ChildActiveRecordModel'
|
50
|
+
end
|
51
|
+
|
30
52
|
class Company < ActiveRecord::Base
|
31
53
|
has_many :divisions
|
32
54
|
|
data/spec/support/mongoid.rb
CHANGED
@@ -9,6 +9,25 @@ def clear_mongodb
|
|
9
9
|
Mongoid.master.collections.select {|c| c.name !~ /system/ }.each(&:drop)
|
10
10
|
end
|
11
11
|
|
12
|
+
class ChildMongoidDocument
|
13
|
+
include Mongoid::Document
|
14
|
+
|
15
|
+
field :number_field
|
16
|
+
|
17
|
+
referenced_in :parent, :class_name => 'ParentMongoidDocument'
|
18
|
+
end
|
19
|
+
|
20
|
+
class ParentMongoidDocument
|
21
|
+
include Mongoid::Document
|
22
|
+
|
23
|
+
field :dynamic_field
|
24
|
+
field :nil_field
|
25
|
+
field :number_field
|
26
|
+
field :string_field
|
27
|
+
|
28
|
+
references_many :collection_field, :class_name => 'ChildMongoidDocument'
|
29
|
+
end
|
30
|
+
|
12
31
|
class Author
|
13
32
|
include Mongoid::Document
|
14
33
|
|
@@ -1,3 +1,22 @@
|
|
1
|
+
class ParentRubyObject
|
2
|
+
attr_accessor \
|
3
|
+
:collection_field,
|
4
|
+
:dynamic_field,
|
5
|
+
:nil_field,
|
6
|
+
:number_field,
|
7
|
+
:string_field
|
8
|
+
|
9
|
+
def persisted?; true end
|
10
|
+
end
|
11
|
+
|
12
|
+
class ChildRubyObject
|
13
|
+
attr_accessor \
|
14
|
+
:parent,
|
15
|
+
:number_field
|
16
|
+
|
17
|
+
def persisted?; true end
|
18
|
+
end
|
19
|
+
|
1
20
|
class Dog
|
2
21
|
attr_accessor :name, :breed, :locations
|
3
22
|
end
|
data/spec/support/sequel.rb
CHANGED
@@ -1,13 +1,17 @@
|
|
1
1
|
require 'sequel'
|
2
2
|
|
3
3
|
DB = Sequel.sqlite # in memory
|
4
|
+
Sequel.extension :migration
|
5
|
+
Sequel::Migrator.run(DB, 'spec/support/sequel_migrations', :current => 0)
|
4
6
|
|
5
|
-
class
|
6
|
-
|
7
|
+
class ChildSequelModel < Sequel::Model
|
8
|
+
many_to_one :parent, :class => :ParentSequelModel, :key => :parent_sequel_model_id
|
7
9
|
|
8
|
-
|
10
|
+
def persisted?; !new? end
|
9
11
|
end
|
10
12
|
|
11
|
-
class
|
12
|
-
|
13
|
+
class ParentSequelModel < Sequel::Model
|
14
|
+
one_to_many :collection_field, :class => :ChildSequelModel, :key => :parent_sequel_model_id
|
15
|
+
|
16
|
+
def persisted?; !new? end
|
13
17
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
Sequel.migration do
|
2
|
+
up do
|
3
|
+
create_table :child_sequel_models do
|
4
|
+
primary_key :id
|
5
|
+
Integer :parent_sequel_model_id
|
6
|
+
Integer :number_field
|
7
|
+
end
|
8
|
+
|
9
|
+
create_table :parent_sequel_models do
|
10
|
+
primary_key :id
|
11
|
+
String :dynamic_field
|
12
|
+
String :nil_field
|
13
|
+
Integer :number_field
|
14
|
+
String :string_field
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
down do
|
19
|
+
drop_table :child_sequel_models
|
20
|
+
drop_table :parent_sequel_models
|
21
|
+
end
|
22
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: fabrication
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.0.
|
5
|
+
version: 1.0.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Paul Elliott
|
@@ -10,72 +10,72 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-07-02 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
16
|
+
name: activerecord
|
17
17
|
prerelease: false
|
18
18
|
requirement: &id001 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
21
|
- - ~>
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
23
|
+
version: 3.0.9
|
24
24
|
type: :development
|
25
25
|
version_requirements: *id001
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
|
-
name:
|
27
|
+
name: bson_ext
|
28
28
|
prerelease: false
|
29
29
|
requirement: &id002 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
31
31
|
requirements:
|
32
32
|
- - ~>
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: 1.3.1
|
35
35
|
type: :development
|
36
36
|
version_requirements: *id002
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
|
-
name:
|
38
|
+
name: cucumber
|
39
39
|
prerelease: false
|
40
40
|
requirement: &id003 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
|
-
- -
|
43
|
+
- - ">="
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
45
|
+
version: "0"
|
46
46
|
type: :development
|
47
47
|
version_requirements: *id003
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
|
-
name:
|
49
|
+
name: ffaker
|
50
50
|
prerelease: false
|
51
51
|
requirement: &id004 !ruby/object:Gem::Requirement
|
52
52
|
none: false
|
53
53
|
requirements:
|
54
|
-
- -
|
54
|
+
- - ">="
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version:
|
56
|
+
version: "0"
|
57
57
|
type: :development
|
58
58
|
version_requirements: *id004
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
|
-
name:
|
60
|
+
name: fuubar
|
61
61
|
prerelease: false
|
62
62
|
requirement: &id005 !ruby/object:Gem::Requirement
|
63
63
|
none: false
|
64
64
|
requirements:
|
65
|
-
- -
|
65
|
+
- - ">="
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version:
|
67
|
+
version: "0"
|
68
68
|
type: :development
|
69
69
|
version_requirements: *id005
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
71
|
+
name: fuubar-cucumber
|
72
72
|
prerelease: false
|
73
73
|
requirement: &id006 !ruby/object:Gem::Requirement
|
74
74
|
none: false
|
75
75
|
requirements:
|
76
|
-
- -
|
76
|
+
- - ">="
|
77
77
|
- !ruby/object:Gem::Version
|
78
|
-
version:
|
78
|
+
version: "0"
|
79
79
|
type: :development
|
80
80
|
version_requirements: *id006
|
81
81
|
- !ruby/object:Gem::Dependency
|
@@ -90,27 +90,49 @@ dependencies:
|
|
90
90
|
type: :development
|
91
91
|
version_requirements: *id007
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
|
-
name:
|
93
|
+
name: rake
|
94
94
|
prerelease: false
|
95
95
|
requirement: &id008 !ruby/object:Gem::Requirement
|
96
96
|
none: false
|
97
97
|
requirements:
|
98
|
-
- -
|
98
|
+
- - ">="
|
99
99
|
- !ruby/object:Gem::Version
|
100
|
-
version:
|
100
|
+
version: "0"
|
101
101
|
type: :development
|
102
102
|
version_requirements: *id008
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
|
-
name:
|
104
|
+
name: rspec
|
105
105
|
prerelease: false
|
106
106
|
requirement: &id009 !ruby/object:Gem::Requirement
|
107
107
|
none: false
|
108
108
|
requirements:
|
109
|
-
- -
|
109
|
+
- - ">="
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: 0
|
111
|
+
version: "0"
|
112
112
|
type: :development
|
113
113
|
version_requirements: *id009
|
114
|
+
- !ruby/object:Gem::Dependency
|
115
|
+
name: sequel
|
116
|
+
prerelease: false
|
117
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
118
|
+
none: false
|
119
|
+
requirements:
|
120
|
+
- - ~>
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: 3.25.0
|
123
|
+
type: :development
|
124
|
+
version_requirements: *id010
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: sqlite3-ruby
|
127
|
+
prerelease: false
|
128
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ">="
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: "0"
|
134
|
+
type: :development
|
135
|
+
version_requirements: *id011
|
114
136
|
description: Fabrication is an object generation framework for ActiveRecord, Mongoid, and Sequel. It has a sensible syntax and lazily generates ActiveRecord associations!
|
115
137
|
email:
|
116
138
|
- paul@hashrocket.com
|
@@ -129,6 +151,7 @@ files:
|
|
129
151
|
- lib/fabrication/fabricator.rb
|
130
152
|
- lib/fabrication/generator/active_record.rb
|
131
153
|
- lib/fabrication/generator/base.rb
|
154
|
+
- lib/fabrication/generator/sequel.rb
|
132
155
|
- lib/fabrication/schematic.rb
|
133
156
|
- lib/fabrication/sequencer.rb
|
134
157
|
- lib/fabrication/support.rb
|
@@ -151,11 +174,13 @@ files:
|
|
151
174
|
- spec/fabricators/cool_object_fabricator.rb
|
152
175
|
- spec/fabricators/mongoid_fabricator.rb
|
153
176
|
- spec/fabricators/plain_old_ruby_object_fabricator.rb
|
177
|
+
- spec/fabricators/sequel_fabricator.rb
|
154
178
|
- spec/spec_helper.rb
|
155
179
|
- spec/support/active_record.rb
|
156
|
-
- spec/support/helper_objects.rb
|
157
180
|
- spec/support/mongoid.rb
|
181
|
+
- spec/support/plain_old_ruby_objects.rb
|
158
182
|
- spec/support/sequel.rb
|
183
|
+
- spec/support/sequel_migrations/001_create_tables.rb
|
159
184
|
- README.markdown
|
160
185
|
homepage: http://github.com/paulelliott/fabrication
|
161
186
|
licenses: []
|