fixture_builder 0.5.0 → 0.5.1.rc4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 71fa7f68a5bc5f9babc68b31a4e6c87f4d96685d
4
- data.tar.gz: 2e81aeeb3ea05673da66001b9138c80975f3558d
3
+ metadata.gz: 0ed3bdfdd32cd95b0878b2a7ea90eacdfa46cdf7
4
+ data.tar.gz: 56e24ea07566286466c783700a09ec9fa7943820
5
5
  SHA512:
6
- metadata.gz: 5676814164f235e2623c35ce49f132f5d3fcd7e7bce1e370678e48bb23def80f474f76161f5b64c24c270623174b79f2ecb8dbbbdb7e35f434812c4f6b1462df
7
- data.tar.gz: f813494f8680709c4cae1f253d3e04f3a807798c6c987f8cab13ea3bca9e8d9642aab8c69c3896e6e8e4a356eb920f6a67a9002eac548b36138a9b597c630a0f
6
+ metadata.gz: b33ccb8d31f502d85944d020a24bbda7ce2333ac35d105ea54002e5956583072ac794eb9fec4fba46c5ec6fe7ea7bc8aface513b20d8ec30a838b93114a5745e
7
+ data.tar.gz: 314ada2063d1523ec3b055c9dc34d9c597a4e57e6757c3af3ebec2b1d356205ad2d5e727186b694349d20ad10fa235756dc7de6087901eecb43c9d84eb1e1655
data/README.markdown CHANGED
@@ -3,7 +3,23 @@ FixtureBuilder
3
3
 
4
4
  [![Build Status](https://secure.travis-ci.org/rdy/fixture_builder.png)](http://travis-ci.org/rdy/fixture_builder)
5
5
 
6
- Based on the code from fixture_scenarios, by Chris Wanstrath. Allows you to build file fixtures from an object mother factory.
6
+ Based on the code from fixture_scenarios, by Chris Wanstrath. Allows you to build file fixtures from
7
+ existing object mother factories, like FactoryGirl, to generate high performance fixtures that can be
8
+ shared across all your tests and development environment.
9
+
10
+ The best of all worlds!
11
+
12
+ * Speed: Leverage the high-performance speed of Rails' transactional tests/fixtures to avoid test suite slowdown
13
+ as your app's number of tests grows, because [creating and persisting data is slow!](https://robots.thoughtbot.com/speed-up-tests-by-selectively-avoiding-factory-girl)
14
+ * Maintainability/reuse/abstraction: Use object mother factories to generate fixtures via
15
+ FactoryGirl or your favorite tool
16
+ * Flexibility: You can always fall back to object mothers in tests if needed, or load a fixture
17
+ and modify only an attribute or two without the overhead of creating an entire object dependency graph.
18
+ * Consistency: Use the exact same fixture data in all environments: test, development, and demo/staging servers.
19
+ Makes reproduction and acceptance testing of bugs/features faster and easier!
20
+ * Simplicity: Avoid having to maintain and generate `seeds.rb` sample data set separately from your test fixture/factory data set,
21
+ or [pick which of the myriad seeds helper gems to use](https://rubygems.org/search?query=seed). *Just delete
22
+ `seeds.rb` and forget about it!*
7
23
 
8
24
  Installing
9
25
  ==========
@@ -11,93 +27,257 @@ Installing
11
27
  1. Install as a plugin or gem: `gem install fixture_builder`
12
28
  1. Create a file which configures and declares your fixtures (see below for example)
13
29
  1. Require the above file in your `spec_helper.rb` or `test_helper.rb`
30
+ 1. If you are using rspec, ensure you have
31
+ * Set the `FIXTURES_PATH` in `config/application.rb` (not test.rb, or you can't use `rake db:fixtures:load`). E.g.:
32
+
33
+ ```ruby
34
+ module MyApp
35
+ class Application < Rails::Application
36
+ #...
37
+ ENV['FIXTURES_PATH'] = 'spec/fixtures'
38
+ #...
39
+ ```
40
+ * Set `config.fixture_path = Rails.root.join('spec/fixtures')` in `spec/rails_helper.rb`
41
+ * Set `config.global_fixtures = :all` if you don't want to specify fixtures in every spec file.
42
+ 1. You probably also want to use [**config.use_transactional_fixtures**](https://www.relishapp.com/rspec/rspec-rails/docs/transactions)
43
+ (if you are using rspec)
44
+ or [**use_transactional_fixtures/use_transactional_tests**](http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html) (if you are not using rspec),
45
+ 1. If you are using fixtures in Selenium-based Capybara/Cucumber specs that runs the tests and server in separate processes,
46
+ you probably want to consider setting transactional fixtures to false, and instead using
47
+ [Database Cleaner](https://github.com/DatabaseCleaner/database_cleaner)
48
+ with `DatabaseCleaner.strategy = :truncation` or `DatabaseCleaner.strategy = :deletion`.
49
+
50
+ Usage
51
+ =====
52
+
53
+ * When running tests/specs, fixtures will build/rebuild automatically as needed
54
+ * `rake spec:fixture_builder:build` to force a build of fixtures
55
+ * `rake spec:fixture_builder:rebuild` to force a rebuild of fixtures
56
+ * `rake db:fixtures:load` to load built fixtures into your development environment (this is a standard Rails rake task)
14
57
 
15
58
 
16
- Example
17
- =======
59
+ Configuration Example
60
+ =====================
61
+
62
+ `spec/rails_helper.rb` or `test/test_helper.rb`:
63
+
64
+ ```ruby
65
+ require_relative 'support/fixture_builder'
66
+ ```
18
67
 
19
68
  When using an object mother such as factory_girl it can be setup like the following:
20
69
 
21
- # I usually put this file in spec/support/fixture_builder.rb
22
- FixtureBuilder.configure do |fbuilder|
23
- # rebuild fixtures automatically when these files change:
24
- fbuilder.files_to_check += Dir["spec/factories/*.rb", "spec/support/fixture_builder.rb"]
25
-
26
- # now declare objects
27
- fbuilder.factory do
28
- david = Factory(:user, :unique_name => "david")
29
- ipod = Factory(:product, :name => "iPod")
30
- Factory(:purchase, :user => david, :product => ipod)
31
- end
32
- end
70
+ ```ruby
71
+ # spec/support/fixture_builder.rb
72
+ FixtureBuilder.configure do |fbuilder|
73
+ # rebuild fixtures automatically when these files change:
74
+ fbuilder.files_to_check += Dir["spec/factories/*.rb", "spec/support/fixture_builder.rb"]
33
75
 
34
- The block passed to the factory method initiates the creation of the fixture files. Before yielding to the block, FixtureBuilder cleans out the test database completely. When the block finishes, it dumps the state of the database into fixtures, like this:
76
+ # now declare objects
77
+ fbuilder.factory do
78
+ david = Factory(:user, :unique_name => "david")
79
+ ipod = Factory(:product, :name => "iPod")
80
+ Factory(:purchase, :user => david, :product => ipod)
81
+ end
82
+ end
83
+ ```
35
84
 
36
- # users.yml
37
- david:
38
- created_at: 2010-09-18 17:21:23.926511 Z
39
- unique_name: david
40
- id: 1
85
+ The block passed to the factory method initiates the creation of the fixture files.
86
+ Before yielding to the block, FixtureBuilder cleans out the test database completely.
87
+ When the block finishes, it dumps the state of the database into fixtures, like this:
41
88
 
42
- # products.yml
43
- i_pod:
44
- name: iPod
45
- id: 1
89
+ ```yaml
90
+ # users.yml
91
+ david:
92
+ created_at: 2010-09-18 17:21:23.926511 Z
93
+ unique_name: david
94
+ id: 1
46
95
 
47
- # purchases.yml
48
- purchase_001:
49
- product_id: 1
50
- user_id: 1
96
+ # products.yml
97
+ i_pod:
98
+ name: iPod
99
+ id: 1
51
100
 
52
- FixtureBuilder guesses about how to name fixtures based on a prioritized list of attribute names. You can also hint at a name or manually name an object. Both of the following lines would work to rename `purchase_001` to `davids_ipod`:
101
+ # purchases.yml
102
+ purchase_001:
103
+ product_id: 1
104
+ user_id: 1
105
+ ```
53
106
 
54
- fbuilder.name(:davids_ipod, Factory(:purchase, :user => david, :product => ipod))
55
- @davids_ipod = Factory(:purchase, :user => david, :product => ipod)
107
+ FixtureBuilder guesses about how to name fixtures based on a prioritized list of attribute names.
108
+ You can also hint at a name or manually name an object. Both of the following lines would
109
+ work to rename `purchase_001` to `davids_ipod`:
56
110
 
57
- Another way to name fixtures is to use the name_model_with. To use it you create a block that returns how you want a certain model name based on the record field.
111
+ ```ruby
112
+ fbuilder.name(:davids_ipod, Factory(:purchase, :user => david, :product => ipod))
113
+ @davids_ipod = Factory(:purchase, :user => david, :product => ipod)
114
+ ```
58
115
 
59
- fbuilder.name_model_with(User) do |record|
60
- [record['first_name'], record['last_name']].join('_')
61
- end
116
+ Another way to name fixtures is to use the name_model_with. To use it you create a block that
117
+ returns how you want a certain model name based on the record field.
118
+
119
+ ```ruby
120
+ fbuilder.name_model_with(User) do |record|
121
+ [record['first_name'], record['last_name']].join('_')
122
+ end
123
+ ```
62
124
 
63
125
  For all User fixture {first_name: 'foo', last_name: 'bar'} it would generate `foo_bar` as the fixture name.
64
126
 
65
127
  There are also additional configuration options that can be changed to override the defaults:
66
128
 
67
- * files_to_check: array of filenames that when changed cause fixtures to be rebuilt
68
- * fixture_builder_file: the pathname of the file used to store file changes.
69
- * record_name_fields: array of field names to use as a fixture's name prefix, it will use the first matching field it finds
70
- * skip_tables: array of table names to skip building fixtures
71
- * select_sql: sql string to use for select
72
- * delete_sql: sql string to use for deletes
129
+ * files_to_check: array of filenames that when changed cause fixtures to be rebuilt
130
+ * fixture_builder_file: the pathname of the file used to store file changes.
131
+ * record_name_fields: array of field names to use as a fixture's name prefix, it will use the first matching field it finds
132
+ * skip_tables: array of table names to skip building fixtures
133
+ * select_sql: sql string to use for select
134
+ * delete_sql: sql string to use for deletes
73
135
 
74
136
  By default these are set as:
75
137
 
76
- * files_to_check: %w{ db/schema.rb }
77
- * fixture_builder_file: RAILS_ROOT/tmp/fixture_builder.yml
78
- * record_name_fields: %w{ schema_migrations }
79
- * skip_tables: %w{ schema_migrations }
80
- * select_sql: SELECT * FROM %{table}
81
- * delete_sql: DELETE FROM %{table}
138
+ * files_to_check: %w{ db/schema.rb }
139
+ * fixture_builder_file: RAILS_ROOT/tmp/fixture_builder.yml
140
+ * record_name_fields: %w{ schema_migrations }
141
+ * skip_tables: %w{ schema_migrations }
142
+ * select_sql: SELECT * FROM %{table}
143
+ * delete_sql: DELETE FROM %{table}
82
144
 
83
145
  Sequence Collisions
84
146
  ===================
85
147
 
86
- One problem with generating your fixtures is that sequences can collide. When the fixtures are generated only as needed, sometimes the process that generates the fixtures will be different than the process that runs the tests. This results in collisions when you still use factories in your tests. Here's a solution for FactoryGirl which resets sequences numbers to 1000 (to avoid conflicts with fixture data which should e sequenced < 1000) before the tests run:
148
+ One problem with generating your fixtures is that sequences can collide.
149
+ When the fixtures are generated only as needed, sometimes the process that
150
+ generates the fixtures will be different than the process that runs the tests.
151
+ This results in collisions when you still use factories in your tests.
87
152
 
88
- FixtureBuilder.configure do |fbuilder|
89
- ...
90
- end
153
+ There's a couple of approaches for this.
154
+
155
+ Here's a solution for FactoryGirl which resets sequences numbers to 1000
156
+ (to avoid conflicts with fixture data which should be sequenced < 1000)
157
+ before the tests run:
158
+
159
+ ```ruby
160
+ FixtureBuilder.configure do |fbuilder|
161
+ # ...
162
+ end
163
+
164
+ # Have factory girl generate non-colliding sequences starting at 1000 for data created after the fixtures
91
165
 
92
- # Have factory girl generate non-colliding sequences starting at 1000 for data created after the fixtures
166
+ # Factory Girl <2 yields name & seq
167
+ # Factory Girl >2 yeilds only seq
168
+ FactoryGirl.sequences.each do |seq|
93
169
 
94
- # Factory Girl <2 yields name & seq
95
- # Factory Girl >2 yeilds only seq
96
- FactoryGirl.sequences.each do |seq|
97
-
98
- # Factory Girl 4 uses an Enumerator Adapter, otherwise simply set a Fixnum
99
- seq.instance_variable_set(:@value, FactoryGirl::Sequence::EnumeratorAdapter.new(2000))
100
-
170
+ # Factory Girl 4 uses an Enumerator Adapter, otherwise simply set a Fixnum
171
+ seq.instance_variable_set(:@value, FactoryGirl::Sequence::EnumeratorAdapter.new(2000))
172
+
173
+ end
174
+ ```
175
+
176
+ Another solution is to explicitly reset the database primary key sequence via ActiveRecord.
177
+ You could call this method before you run your factories in the `fixture_builder.rb` block:
178
+
179
+ ```ruby
180
+ def reset_pk_sequences
181
+ puts 'Resetting Primary Key sequences'
182
+ ActiveRecord::Base.connection.tables.each do |t|
183
+ ActiveRecord::Base.connection.reset_pk_sequence!(t)
184
+ end
185
+ end
186
+
187
+ ```
188
+
189
+ Advanced Usage
190
+ ==============
191
+
192
+ As you get more fixtures, you may want to move the creation of fixtures to a separate file. For example:
193
+
194
+ ```ruby
195
+ # spec/support/fixture_builder.rb
196
+ require_relative 'create_fixtures'
197
+
198
+ FixtureBuilder.configure do |fbuilder|
199
+ # rebuild fixtures automatically when these files change:
200
+ fbuilder.files_to_check += Dir[
201
+ "spec/factories/*.rb",
202
+ "spec/support/fixture_builder.rb",
203
+ "spec/support/create_fixtures.rb",
204
+ ]
205
+
206
+ # now declare objects
207
+ fbuilder.factory do
208
+ CreateFixtures.new(fbuilder).create_all
209
+ end
210
+ end
211
+ ```
212
+
213
+ Then, you can do more extensive and advanced fixture creation in that class. Here's
214
+ a partial example:
215
+
216
+ ```ruby
217
+ # spec/support/create_fixtures.rb
218
+
219
+ require 'factory_girl_rails'
220
+
221
+ class CreateFixtures
222
+ include FactoryGirl::Syntax::Methods
223
+
224
+ attr_accessor :fbuilder, :models, :fixed_time
225
+
226
+ def initialize(fbuilder)
227
+ @fbuilder = fbuilder
228
+ @models = {}
229
+ @fixed_time = Time.utc(2015, 3, 14, 9, 2, 6)
230
+ end
231
+
232
+ def create_all
233
+ reset_pk_sequences
234
+ create_users
235
+ create_products
236
+ create_purchases
237
+ reset_pk_sequences
238
+ end
239
+
240
+ private
241
+
242
+ def reset_pk_sequences
243
+ puts 'Resetting Primary Key sequences'
244
+ ActiveRecord::Base.connection.tables.each do |t|
245
+ ActiveRecord::Base.connection.reset_pk_sequence!(t)
101
246
  end
247
+ end
248
+
249
+ def create_users
250
+ # etc...
251
+ end
252
+
253
+ # other creation and helper methods to abstract common logic, e.g.
254
+ # * custom naming rules via #name_model_with
255
+ # * set up associations by storing created model records in a hash: models[model_class_name][model_name.to_sym] = record
256
+ # etc... (hopefully some of these helper patterns can be standardized and included in the gem in the future)
257
+ end
258
+ ```
259
+
260
+ Tips
261
+ ====
262
+
263
+ * Don't use `seeds.rb`. Instead, just use `rake db:fixtures:load` to get fixtures into dev. If you
264
+ want fixture data on a staging/demo environment, either run `db:fixtures:load`, or
265
+ dump the database and load it there.
266
+ * Always use fixtures instead of object mothers in tests when possible - this will keep your test suite fast!
267
+ [Even FactoryGirl says to avoid using factories when you can, because creating and persisting data is slow](https://robots.thoughtbot.com/speed-up-tests-by-selectively-avoiding-factory-girl)
268
+ * If you only need to tweak an attribute or two to test an edge case, load the fixture object,
269
+ then just set the attribute on the object (if you don't need it persisted, this is fastest), or
270
+ set it via `#update_attributes!` (only if you need it persisted, this is slower).
271
+ * Modify `bin/setup` to run fixture builder and load your dev database:
272
+ ```ruby
273
+ puts "\n== Building fixtures =="
274
+ system! 'bin/rails spec:fixture_builder:build'
275
+
276
+ puts "\n== Loading fixtures into dev database =="
277
+ system! 'bin/rails db:fixtures:load'
278
+ ```
279
+
102
280
 
103
281
  Copyright (c) 2009 Ryan Dy & David Stevenson, released under the MIT license
282
+
283
+ Currently maintained by [Chad Woolley](thewoolleyman@gmail.com)
@@ -7,8 +7,8 @@ Gem::Specification.new do |s|
7
7
  s.version = FixtureBuilder::VERSION
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
10
- s.authors = ['Ryan Dy', 'David Stevenson']
11
- s.description = %q{FixtureBuilder allows testers to use their existing factories, like FactoryGirl, to generate high performance fixtures that can be shared across all your tests}
10
+ s.authors = ['Ryan Dy', 'David Stevenson', 'Chad Woolley']
11
+ s.description = %q{FixtureBuilder allows testers to use their existing factories, like FactoryGirl, to generate high performance fixtures that can be shared across all your tests and development environment. The best of all worlds! Speed, Maintainability, Flexibility, Consistency, and Simplicity!}
12
12
  s.email = %q{mail@ryandy.com}
13
13
  s.licenses = ['MIT']
14
14
  s.extra_rdoc_files = [
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
21
21
 
22
22
  s.homepage = %q{http://github.com/rdy/fixture_builder}
23
23
  s.rubyforge_project = %q{fixture_builder}
24
- s.summary = %q{Build YAML fixtures using object factories}
24
+ s.summary = %q{Build Rails fixtures using object mother factories}
25
25
 
26
26
  s.add_dependency %q{activerecord}, '>= 2'
27
27
  s.add_dependency %q{activesupport}, '>= 2'
@@ -78,7 +78,7 @@ module FixtureBuilder
78
78
  end
79
79
 
80
80
  def delete_yml_files
81
- FileUtils.rm(Dir.glob(fixtures_dir('*.yml'))) rescue nil
81
+ FileUtils.rm(*tables.map { |t| fixture_file(t) }) rescue nil
82
82
  end
83
83
 
84
84
  def say(*messages)
@@ -129,10 +129,14 @@ module FixtureBuilder
129
129
 
130
130
  def serialized_value_if_needed(table_klass, attr_name, value)
131
131
  if table_klass.respond_to?(:type_for_attribute)
132
- if table_klass.type_for_attribute(attr_name).respond_to?(:serialize)
132
+ if table_klass.type_for_attribute(attr_name).type == :jsonb || table_klass.type_for_attribute(attr_name).type == :json
133
+ value
134
+ elsif table_klass.type_for_attribute(attr_name).respond_to?(:serialize)
133
135
  table_klass.type_for_attribute(attr_name).serialize(value)
134
- else
136
+ elsif table_klass.type_for_attribute(attr_name).respond_to?(:type_cast_for_database)
135
137
  table_klass.type_for_attribute(attr_name).type_cast_for_database(value)
138
+ else
139
+ table_klass.type_for_attribute(attr_name).type_cast_for_schema(value)
136
140
  end
137
141
  else
138
142
  if table_klass.serialized_attributes.has_key? attr_name
@@ -97,7 +97,7 @@ module FixtureBuilder
97
97
  end
98
98
 
99
99
  def fixture_directory
100
- @fixture_directory ||= File.expand_path(File.join(::Rails.root, spec_or_test_dir, 'fixtures'))
100
+ @fixture_directory ||= FixturesPath.absolute_rails_fixtures_path
101
101
  end
102
102
 
103
103
  def fixtures_dir(path = '')
@@ -106,10 +106,6 @@ module FixtureBuilder
106
106
 
107
107
  private
108
108
 
109
- def spec_or_test_dir
110
- File.exists?(File.join(::Rails.root, 'spec')) ? 'spec' : 'test'
111
- end
112
-
113
109
  def file_hashes
114
110
  files_to_check.inject({}) do |hash, filename|
115
111
  hash[filename] = Digest::MD5.hexdigest(File.read(filename))
@@ -0,0 +1,15 @@
1
+ module FixtureBuilder
2
+ class FixturesPath
3
+ def self.absolute_rails_fixtures_path
4
+ File.expand_path(ActiveRecord::Tasks::DatabaseTasks.fixtures_path)
5
+ rescue
6
+ if ENV["FIXTURES_PATH"]
7
+ ENV["FIXTURES_PATH"]
8
+ elsif File.exists?(File.expand_path("spec/fixtures",::Rails.root))
9
+ File.expand_path("spec/fixtures",::Rails.root)
10
+ else
11
+ File.expand_path("test/fixtures",::Rails.root)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -1,3 +1,3 @@
1
1
  module FixtureBuilder
2
- VERSION = '0.5.0'
2
+ VERSION = '0.5.1.rc4'
3
3
  end
@@ -2,6 +2,7 @@ require 'fixture_builder/delegations'
2
2
  require 'fixture_builder/configuration'
3
3
  require 'fixture_builder/namer'
4
4
  require 'fixture_builder/builder'
5
+ require 'fixture_builder/fixtures_path'
5
6
 
6
7
  module FixtureBuilder
7
8
  class << self
@@ -3,14 +3,14 @@ namespace :spec do
3
3
  desc "Deletes the generated fixtures in spec/fixtures"
4
4
  task :clean do
5
5
  FileUtils.rm_f("tmp/fixture_builder.yml")
6
- FileUtils.rm_f(Dir.glob('spec/fixtures/*.yml'))
6
+ FileUtils.rm_f(Dir.glob("#{FixtureBuilder::FixturesPath.absolute_rails_fixtures_path}/*.yml"))
7
7
  puts "Automatically generated fixtures removed"
8
8
  end
9
9
 
10
10
  desc "Build the generated fixtures to spec/fixtures if dirty"
11
11
  task :build => :environment do
12
12
  ActiveRecord::Base.establish_connection(:test)
13
- Dir.glob(File.join(Rails.root, '{spec,test}', '**', 'fixture_builder.rb')).each{|file| require(file)}
13
+ Dir.glob(File.join(::Rails.root, '{spec,test}', '**', 'fixture_builder.rb')).each{|file| require(file)}
14
14
  end
15
15
 
16
16
  desc "Clean and rebuild the generated fixtures to spec/fixtures"
@@ -62,8 +62,8 @@ class FixtureBuilderTest < Test::Unit::TestCase
62
62
  assert @called
63
63
  end
64
64
 
65
- def test_spec_or_test_dir
66
- assert_equal 'test', FixtureBuilder.configuration.send(:spec_or_test_dir)
65
+ def test_absolute_rails_fixtures_path
66
+ assert_equal File.expand_path('../../test/fixtures', __FILE__), FixtureBuilder::FixturesPath.absolute_rails_fixtures_path
67
67
  end
68
68
 
69
69
  def test_fixtures_dir
metadata CHANGED
@@ -1,11 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fixture_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1.rc4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Dy
8
8
  - David Stevenson
9
+ - Chad Woolley
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
@@ -96,7 +97,9 @@ dependencies:
96
97
  - !ruby/object:Gem::Version
97
98
  version: '0'
98
99
  description: FixtureBuilder allows testers to use their existing factories, like FactoryGirl,
99
- to generate high performance fixtures that can be shared across all your tests
100
+ to generate high performance fixtures that can be shared across all your tests and
101
+ development environment. The best of all worlds! Speed, Maintainability, Flexibility,
102
+ Consistency, and Simplicity!
100
103
  email: mail@ryandy.com
101
104
  executables: []
102
105
  extensions: []
@@ -116,6 +119,7 @@ files:
116
119
  - lib/fixture_builder/builder.rb
117
120
  - lib/fixture_builder/configuration.rb
118
121
  - lib/fixture_builder/delegations.rb
122
+ - lib/fixture_builder/fixtures_path.rb
119
123
  - lib/fixture_builder/namer.rb
120
124
  - lib/fixture_builder/version.rb
121
125
  - lib/tasks/fixture_builder.rake
@@ -150,7 +154,7 @@ rubyforge_project: fixture_builder
150
154
  rubygems_version: 2.4.8
151
155
  signing_key:
152
156
  specification_version: 4
153
- summary: Build YAML fixtures using object factories
157
+ summary: Build Rails fixtures using object mother factories
154
158
  test_files:
155
159
  - test/fixture_builder_test.rb
156
160
  - test/fixtures/.gitkeep