fixture_builder 0.3.6 → 0.4.0
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.
- checksums.yaml +7 -0
- data/.ruby-version +1 -0
- data/.travis.yml +1 -2
- data/fixture_builder.gemspec +1 -1
- data/lib/fixture_builder/builder.rb +24 -7
- data/lib/fixture_builder/version.rb +1 -1
- data/test/fixture_builder_test.rb +14 -0
- data/test/test_helper.rb +13 -3
- metadata +25 -42
- data/.rvmrc +0 -1
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6430cc162885cf416713e94086950ebde4a11daf
|
4
|
+
data.tar.gz: c5bae14c5c36cb5dcb3417754dc2e0ea9e5148e9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 827e45c3ab31588adff3ffbcab7bf2d058e0e48710fd948dbc777fc2f40fce5a9d44da594b0d437d20b2917bd494c97db62e1c57c4aaa15628ce1c965f83f260
|
7
|
+
data.tar.gz: 3f5d6a715b0950b19ce8c110b070df278a4a52a670cd8d6a5c74cd5aa1f91a3d47aa4af0f193e2370c121a30305ff1189ec838539d981a23c23e385fb626f855
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby-2.1.5
|
data/.travis.yml
CHANGED
data/fixture_builder.gemspec
CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |s|
|
|
25
25
|
|
26
26
|
s.add_dependency %q{activerecord}, '>= 2'
|
27
27
|
s.add_dependency %q{activesupport}, '>= 2'
|
28
|
-
s.add_development_dependency %q{rake}
|
28
|
+
s.add_development_dependency %q{rake}
|
29
29
|
s.add_development_dependency %q{rails}, '>= 2'
|
30
30
|
s.add_development_dependency %q{test-unit}
|
31
31
|
s.add_development_dependency %q{sqlite3}
|
@@ -27,13 +27,22 @@ module FixtureBuilder
|
|
27
27
|
|
28
28
|
def load_legacy_fixtures
|
29
29
|
legacy_fixtures.each do |fixture_file|
|
30
|
-
# Rails 3.0 and 3.1+ support
|
31
|
-
fixtures_class = defined?(ActiveRecord::Fixtures) ? ActiveRecord::Fixtures : ::Fixtures
|
32
30
|
fixtures = fixtures_class.create_fixtures(File.dirname(fixture_file), File.basename(fixture_file, '.*'))
|
33
31
|
populate_custom_names(fixtures)
|
34
32
|
end
|
35
33
|
end
|
36
34
|
|
35
|
+
# Rails 3.0 and 3.1+ support
|
36
|
+
def fixtures_class
|
37
|
+
if defined?(ActiveRecord::FixtureSet)
|
38
|
+
ActiveRecord::FixtureSet
|
39
|
+
elsif defined?(ActiveRecord::Fixtures)
|
40
|
+
ActiveRecord::Fixtures
|
41
|
+
else
|
42
|
+
::Fixtures
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
37
46
|
def surface_errors
|
38
47
|
yield
|
39
48
|
rescue Object => error
|
@@ -93,11 +102,7 @@ module FixtureBuilder
|
|
93
102
|
table_klass.all.collect do |obj|
|
94
103
|
attrs = obj.attributes
|
95
104
|
attrs.inject({}) do |hash, (attr_name, value)|
|
96
|
-
|
97
|
-
hash[attr_name] = table_klass.serialized_attributes[attr_name].dump(value)
|
98
|
-
else
|
99
|
-
hash[attr_name] = value
|
100
|
-
end
|
105
|
+
hash[attr_name] = serialized_value_if_needed(table_klass, attr_name, value)
|
101
106
|
hash
|
102
107
|
end
|
103
108
|
end
|
@@ -122,6 +127,18 @@ module FixtureBuilder
|
|
122
127
|
say "Built #{fixtures.to_sentence}"
|
123
128
|
end
|
124
129
|
|
130
|
+
def serialized_value_if_needed(table_klass, attr_name, value)
|
131
|
+
if table_klass.respond_to?(:type_for_attribute)
|
132
|
+
table_klass.type_for_attribute(attr_name).type_cast_for_database(value)
|
133
|
+
else
|
134
|
+
if table_klass.serialized_attributes.has_key? attr_name
|
135
|
+
table_klass.serialized_attributes[attr_name].dump(value)
|
136
|
+
else
|
137
|
+
value
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
125
142
|
def write_fixture_file(fixture_data, table_name)
|
126
143
|
File.open(fixture_file(table_name), 'w') do |file|
|
127
144
|
file.write fixture_data.to_yaml
|
@@ -39,6 +39,20 @@ class FixtureBuilderTest < Test::Unit::TestCase
|
|
39
39
|
assert_equal 'king_of_gnomes', generated_fixture.keys.first
|
40
40
|
end
|
41
41
|
|
42
|
+
def test_serialization
|
43
|
+
create_and_blow_away_old_db
|
44
|
+
force_fixture_generation
|
45
|
+
|
46
|
+
FixtureBuilder.configure do |fbuilder|
|
47
|
+
fbuilder.files_to_check += Dir[test_path("*.rb")]
|
48
|
+
fbuilder.factory do
|
49
|
+
@enty = MagicalCreature.create(:name => 'Enty', :species => 'ent',
|
50
|
+
:powers => %w{shading rooting seeding})
|
51
|
+
end
|
52
|
+
end
|
53
|
+
generated_fixture = YAML.load(File.open(test_path("fixtures/magical_creatures.yml")))
|
54
|
+
assert_equal "---\n- shading\n- rooting\n- seeding\n", generated_fixture['enty']['powers']
|
55
|
+
end
|
42
56
|
|
43
57
|
def test_configure
|
44
58
|
FixtureBuilder.configure do |config|
|
data/test/test_helper.rb
CHANGED
@@ -6,6 +6,10 @@ class Rails
|
|
6
6
|
def self.root
|
7
7
|
Pathname.new(File.join(File.dirname(__FILE__), '..'))
|
8
8
|
end
|
9
|
+
|
10
|
+
def self.env
|
11
|
+
'test'
|
12
|
+
end
|
9
13
|
end
|
10
14
|
|
11
15
|
def test_path(glob)
|
@@ -14,7 +18,6 @@ end
|
|
14
18
|
|
15
19
|
require 'active_support/concern'
|
16
20
|
require 'active_record'
|
17
|
-
require 'active_record/test_case'
|
18
21
|
require 'active_record/fixtures'
|
19
22
|
|
20
23
|
def create_fixtures(*table_names, &block)
|
@@ -26,7 +29,13 @@ require 'fixture_builder'
|
|
26
29
|
|
27
30
|
class MagicalCreature < ActiveRecord::Base
|
28
31
|
validates_presence_of :name, :species
|
29
|
-
|
32
|
+
serialize :powers, Array
|
33
|
+
|
34
|
+
if ActiveRecord::VERSION::MAJOR >= 4
|
35
|
+
default_scope -> { where(:deleted => false) }
|
36
|
+
else
|
37
|
+
default_scope :conditions => { :deleted => false }
|
38
|
+
end
|
30
39
|
end
|
31
40
|
|
32
41
|
def create_and_blow_away_old_db
|
@@ -39,6 +48,7 @@ def create_and_blow_away_old_db
|
|
39
48
|
ActiveRecord::Base.connection.create_table(:magical_creatures, :force => true) do |t|
|
40
49
|
t.column :name, :string
|
41
50
|
t.column :species, :string
|
51
|
+
t.column :powers, :string
|
42
52
|
t.column :deleted, :boolean, :default => false, :null => false
|
43
53
|
end
|
44
54
|
end
|
@@ -48,4 +58,4 @@ def force_fixture_generation
|
|
48
58
|
FileUtils.rm(File.expand_path("../../tmp/fixture_builder.yml", __FILE__))
|
49
59
|
rescue
|
50
60
|
end
|
51
|
-
end
|
61
|
+
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fixture_builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.4.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Ryan Dy
|
@@ -10,102 +9,90 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 2015-06-04 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: activerecord
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
|
-
- -
|
18
|
+
- - ">="
|
21
19
|
- !ruby/object:Gem::Version
|
22
20
|
version: '2'
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
|
-
- -
|
25
|
+
- - ">="
|
29
26
|
- !ruby/object:Gem::Version
|
30
27
|
version: '2'
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: activesupport
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
|
-
- -
|
32
|
+
- - ">="
|
37
33
|
- !ruby/object:Gem::Version
|
38
34
|
version: '2'
|
39
35
|
type: :runtime
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
|
-
- -
|
39
|
+
- - ">="
|
45
40
|
- !ruby/object:Gem::Version
|
46
41
|
version: '2'
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: rake
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
|
-
- -
|
46
|
+
- - ">="
|
53
47
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0
|
48
|
+
version: '0'
|
55
49
|
type: :development
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
|
-
- -
|
53
|
+
- - ">="
|
61
54
|
- !ruby/object:Gem::Version
|
62
|
-
version: 0
|
55
|
+
version: '0'
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
57
|
name: rails
|
65
58
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
59
|
requirements:
|
68
|
-
- -
|
60
|
+
- - ">="
|
69
61
|
- !ruby/object:Gem::Version
|
70
62
|
version: '2'
|
71
63
|
type: :development
|
72
64
|
prerelease: false
|
73
65
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
66
|
requirements:
|
76
|
-
- -
|
67
|
+
- - ">="
|
77
68
|
- !ruby/object:Gem::Version
|
78
69
|
version: '2'
|
79
70
|
- !ruby/object:Gem::Dependency
|
80
71
|
name: test-unit
|
81
72
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
73
|
requirements:
|
84
|
-
- -
|
74
|
+
- - ">="
|
85
75
|
- !ruby/object:Gem::Version
|
86
76
|
version: '0'
|
87
77
|
type: :development
|
88
78
|
prerelease: false
|
89
79
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
80
|
requirements:
|
92
|
-
- -
|
81
|
+
- - ">="
|
93
82
|
- !ruby/object:Gem::Version
|
94
83
|
version: '0'
|
95
84
|
- !ruby/object:Gem::Dependency
|
96
85
|
name: sqlite3
|
97
86
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
87
|
requirements:
|
100
|
-
- -
|
88
|
+
- - ">="
|
101
89
|
- !ruby/object:Gem::Version
|
102
90
|
version: '0'
|
103
91
|
type: :development
|
104
92
|
prerelease: false
|
105
93
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
94
|
requirements:
|
108
|
-
- -
|
95
|
+
- - ">="
|
109
96
|
- !ruby/object:Gem::Version
|
110
97
|
version: '0'
|
111
98
|
description: FixtureBuilder allows testers to use their existing factories, like FactoryGirl,
|
@@ -116,10 +103,10 @@ extensions: []
|
|
116
103
|
extra_rdoc_files:
|
117
104
|
- README.markdown
|
118
105
|
files:
|
119
|
-
- .gitignore
|
120
|
-
- .pairs
|
121
|
-
- .
|
122
|
-
- .travis.yml
|
106
|
+
- ".gitignore"
|
107
|
+
- ".pairs"
|
108
|
+
- ".ruby-version"
|
109
|
+
- ".travis.yml"
|
123
110
|
- Gemfile
|
124
111
|
- MIT-LICENSE
|
125
112
|
- README.markdown
|
@@ -143,30 +130,26 @@ files:
|
|
143
130
|
homepage: http://github.com/rdy/fixture_builder
|
144
131
|
licenses:
|
145
132
|
- MIT
|
133
|
+
metadata: {}
|
146
134
|
post_install_message:
|
147
135
|
rdoc_options: []
|
148
136
|
require_paths:
|
149
137
|
- lib
|
150
138
|
required_ruby_version: !ruby/object:Gem::Requirement
|
151
|
-
none: false
|
152
139
|
requirements:
|
153
|
-
- -
|
140
|
+
- - ">="
|
154
141
|
- !ruby/object:Gem::Version
|
155
142
|
version: '0'
|
156
|
-
segments:
|
157
|
-
- 0
|
158
|
-
hash: -260464205711861876
|
159
143
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
160
|
-
none: false
|
161
144
|
requirements:
|
162
|
-
- -
|
145
|
+
- - ">="
|
163
146
|
- !ruby/object:Gem::Version
|
164
147
|
version: '0'
|
165
148
|
requirements: []
|
166
149
|
rubyforge_project: fixture_builder
|
167
|
-
rubygems_version:
|
150
|
+
rubygems_version: 2.2.2
|
168
151
|
signing_key:
|
169
|
-
specification_version:
|
152
|
+
specification_version: 4
|
170
153
|
summary: Build YAML fixtures using object factories
|
171
154
|
test_files:
|
172
155
|
- test/fixture_builder_test.rb
|
data/.rvmrc
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
rvm 1.9.3@fixture_builder --create
|