fixture_replacement 4.0.0 → 4.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.rdoc +20 -2
- data/README.rdoc +12 -6
- data/VERSION +1 -1
- data/lib/fixture_replacement/class_methods.rb +4 -22
- data/lib/fixture_replacement/method_generator.rb +0 -8
- data/lib/fixture_replacement/random_data_generators.rb +36 -0
- data/lib/fixture_replacement/version.rb +1 -1
- data/lib/fixture_replacement.rb +2 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 70ad8e924533702d5954ff854992ca3d215090e5e97e7f4e47221d51f04aebf4
|
4
|
+
data.tar.gz: 69ffca95d0436db069bcf3e536d87704414702db8ed3f037bb313372e443d871
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d66a2d0b581d785c5ff26144cbea3b2e724454ed151d1de19f35aacba3582d87df7fdcda2d0e43c400933fd18cbe494d3c043244577156c1230669fb9dc6fc43
|
7
|
+
data.tar.gz: 2261fdb8e7b312e73162b9d10c0e761cae31f00448827238904d6785c5827d04f72d5e0a73b72b6dda11461d814a2ff59b53896d541c2fe18b796ce85f3dbacd
|
data/CHANGELOG.rdoc
CHANGED
@@ -1,7 +1,25 @@
|
|
1
|
+
== 4.1.0
|
2
|
+
|
3
|
+
* add more helpers:
|
4
|
+
* random_incrementing_number
|
5
|
+
* random_email
|
6
|
+
* random_first_name
|
7
|
+
* random_last_name
|
8
|
+
* random_name
|
9
|
+
|
10
|
+
Most of these call faker; so you'll need that library for most of these methods.
|
11
|
+
* rename FixtureReplacement.load_example_data => FixtureReplacement.load!
|
12
|
+
* bug fixes pertaining to module_method
|
13
|
+
* remove default_* methods, which were deprecated
|
14
|
+
|
15
|
+
== 4.0.1
|
16
|
+
|
17
|
+
- Minor release fixes
|
18
|
+
|
1
19
|
== 4.0.0
|
2
20
|
|
3
|
-
|
4
|
-
|
21
|
+
- Update for most recent rails / rspec (rails 7+).
|
22
|
+
- This gem hasn't been updated for over 10+ years. So this is a needed change!
|
5
23
|
|
6
24
|
== 3.0.1
|
7
25
|
|
data/README.rdoc
CHANGED
@@ -1,12 +1,16 @@
|
|
1
|
-
= FixtureReplacement
|
1
|
+
= FixtureReplacement
|
2
2
|
|
3
|
-
== What is FixtureReplacement
|
3
|
+
== What is FixtureReplacement?
|
4
4
|
|
5
|
-
FixtureReplacement is a Rails
|
5
|
+
FixtureReplacement is a Rails gem that provides a simple way to
|
6
6
|
quickly populate your test database with model objects without having to manage multiple,
|
7
7
|
brittle fixture files. You can easily set up complex object graphs (with models which
|
8
8
|
reference other models) and add new objects on the fly.
|
9
9
|
|
10
|
+
(If you've ever used FactoryGirl / FactoryBot, you're probably already quite familiar with
|
11
|
+
fixture_replacement, as it proceeded FactoryGirl. Also, FR is much more opinionated, and
|
12
|
+
much less PC!)
|
13
|
+
|
10
14
|
Not only can FixtureReplacement make your test data easier to maintain, it can also help
|
11
15
|
to make your tests and specs much more readable and intention-revealing by allowing you
|
12
16
|
to omit extraneous details and focus only on the attributes that are important for a
|
@@ -22,9 +26,11 @@ See CHANGELOG.rdoc + test suite for further changes.
|
|
22
26
|
|
23
27
|
== Installation
|
24
28
|
|
25
|
-
|
29
|
+
Add it to your Gemfile:
|
26
30
|
|
27
|
-
|
31
|
+
group :development, :test do
|
32
|
+
gem "fixture_replacement", "~> 4.0"
|
33
|
+
end
|
28
34
|
|
29
35
|
=== Using it with RSpec
|
30
36
|
|
@@ -139,4 +145,4 @@ See contributions.rdoc
|
|
139
145
|
|
140
146
|
This software is dual licensed under the MIT and the GPLv3 Licenses (it's your pick).
|
141
147
|
|
142
|
-
Copyright 2007-
|
148
|
+
Copyright 2007-2022 Scott Taylor / smtlaissezfaire[http://github.com/smtlaissezfaire] (scott@railsnewbie.com)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
4.
|
1
|
+
4.1.0
|
@@ -1,7 +1,9 @@
|
|
1
1
|
module FixtureReplacement
|
2
2
|
module ClassMethods
|
3
|
+
include FixtureReplacement::RandomDataGenerators
|
4
|
+
|
3
5
|
def included(_other_mod)
|
4
|
-
FixtureReplacement.
|
6
|
+
FixtureReplacement.load!
|
5
7
|
end
|
6
8
|
|
7
9
|
def attributes_for(fixture_name, options={}, &block)
|
@@ -13,17 +15,8 @@ module FixtureReplacement
|
|
13
15
|
AttributeBuilder.validate_instances!
|
14
16
|
end
|
15
17
|
|
16
|
-
def
|
17
|
-
chars = ("a".."z").to_a
|
18
|
-
string = ""
|
19
|
-
1.upto(length) { |i| string << chars[rand(chars.size-1)]}
|
20
|
-
string
|
21
|
-
end
|
22
|
-
|
23
|
-
def load_example_data
|
18
|
+
def load!
|
24
19
|
load "#{rails_root}/db/example_data.rb"
|
25
|
-
# rescue NameError
|
26
|
-
# load "./db/example_data.rb"
|
27
20
|
rescue LoadError, NameError
|
28
21
|
# no-op. If the file is not found, don't panic
|
29
22
|
end
|
@@ -38,16 +31,5 @@ module FixtureReplacement
|
|
38
31
|
AttributeBuilder.clear_out_instances!
|
39
32
|
load File.expand_path(File.dirname(__FILE__) + "/../fixture_replacement.rb")
|
40
33
|
end
|
41
|
-
|
42
|
-
private
|
43
|
-
|
44
|
-
# Any user defined instance methods need the module's class scope to be
|
45
|
-
# accessible inside the block given to attributes_for
|
46
|
-
#
|
47
|
-
# Addresses bug #16858 (see CHANGELOG)
|
48
|
-
def method_added(method)
|
49
|
-
module_function method if method != :method_added
|
50
|
-
public method
|
51
|
-
end
|
52
34
|
end
|
53
35
|
end
|
@@ -24,14 +24,6 @@ module FixtureReplacement
|
|
24
24
|
define_method("new_#{builder_name}") do |*args|
|
25
25
|
new_object = builder.instantiate(*args)
|
26
26
|
end
|
27
|
-
|
28
|
-
define_method("default_#{builder_name}") do |*args|
|
29
|
-
warning = "default_#{builder_name} has been deprecated. "
|
30
|
-
warning << "Please replace instances of default_#{builder_name} with the new_#{builder_name} method"
|
31
|
-
Kernel.warn(warning)
|
32
|
-
|
33
|
-
__send__ "new_#{builder_name}"
|
34
|
-
end
|
35
27
|
end
|
36
28
|
end
|
37
29
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module FixtureReplacement
|
2
|
+
module RandomDataGenerators
|
3
|
+
def random_string(length=10)
|
4
|
+
chars = ("a".."z").to_a
|
5
|
+
string = ""
|
6
|
+
1.upto(length) { |i| string << chars[rand(chars.size-1)]}
|
7
|
+
string
|
8
|
+
end
|
9
|
+
|
10
|
+
def random_incrementing_number
|
11
|
+
@increment ||= 0
|
12
|
+
@increment += 1
|
13
|
+
@increment
|
14
|
+
end
|
15
|
+
|
16
|
+
def random_email(*args)
|
17
|
+
require 'faker'
|
18
|
+
Faker::Internet.email(*args)
|
19
|
+
end
|
20
|
+
|
21
|
+
def random_first_name
|
22
|
+
require 'faker'
|
23
|
+
Faker::Name.first_name
|
24
|
+
end
|
25
|
+
|
26
|
+
def random_last_name
|
27
|
+
require 'faker'
|
28
|
+
Faker::Name.last_name
|
29
|
+
end
|
30
|
+
|
31
|
+
def random_name
|
32
|
+
require 'faker'
|
33
|
+
Faker::Name.name
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/fixture_replacement.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
$LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), "."))
|
2
2
|
load "fixture_replacement/version.rb"
|
3
|
+
load "fixture_replacement/random_data_generators.rb"
|
3
4
|
load "fixture_replacement/class_methods.rb"
|
4
5
|
load "fixture_replacement/attribute_builder.rb"
|
5
6
|
load "fixture_replacement/method_generator.rb"
|
@@ -9,6 +10,7 @@ module FixtureReplacement
|
|
9
10
|
|
10
11
|
include FixtureReplacement::Version
|
11
12
|
extend FixtureReplacement::ClassMethods
|
13
|
+
extend self
|
12
14
|
end
|
13
15
|
|
14
16
|
load "fr.rb"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fixture_replacement
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Taylor
|
@@ -32,6 +32,7 @@ files:
|
|
32
32
|
- lib/fixture_replacement/attribute_builder.rb
|
33
33
|
- lib/fixture_replacement/class_methods.rb
|
34
34
|
- lib/fixture_replacement/method_generator.rb
|
35
|
+
- lib/fixture_replacement/random_data_generators.rb
|
35
36
|
- lib/fixture_replacement/version.rb
|
36
37
|
- lib/fr.rb
|
37
38
|
- philosophy_and_bugs.rdoc
|