fixture_builder 0.3.6 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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