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 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
@@ -1,4 +1,3 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.8.7
4
- - 1.9.2
3
+ - 2.1.5
@@ -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}, '0.8.7'
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
- if table_klass.serialized_attributes.has_key? attr_name
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
@@ -1,3 +1,3 @@
1
1
  module FixtureBuilder
2
- VERSION = '0.3.6'
2
+ VERSION = '0.4.0'
3
3
  end
@@ -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
- default_scope :conditions => { :deleted => false }
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.3.6
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: 2013-06-17 00:00:00.000000000 Z
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.8.7
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.8.7
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
- - .rvmrc
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: 1.8.24
150
+ rubygems_version: 2.2.2
168
151
  signing_key:
169
- specification_version: 3
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