fixture_dependencies 1.3.3 → 1.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 +4 -4
- data/README +13 -0
- data/lib/fixture_dependencies.rb +13 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e1db26a9939a45edd1a1d37d76b3558cf51df5c
|
4
|
+
data.tar.gz: 274b53935e81281fef934ee40fac21a992b87fef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2ef34241a9926ad6412d410fffd065b9111f5c4f35373db225002bdc290048a38e33936340a51e3ac1b2c232e52a1cc95f04d0325b380948ca794107c0efc157
|
7
|
+
data.tar.gz: a9bd54222d249d51c34804fe0de3933397eed4df736c33bc6daab0d27b872fe47dfb1d36fffea1cf791711de4b894d23a53f0132d193ba5208898d3894140670
|
data/README
CHANGED
@@ -235,6 +235,19 @@ new fixtures.
|
|
235
235
|
Instantiated fixtures are not available with this plugin. Instead, you should
|
236
236
|
use load(:model__fixture_name).
|
237
237
|
|
238
|
+
== Namespace Issues
|
239
|
+
|
240
|
+
By default, fixture dependencies is going to load the model with the camelized
|
241
|
+
name in the symbol used. So for :foo_bar__baz, it's going to look for
|
242
|
+
the fixture with name baz for the model FooBar. If your model is namespaced,
|
243
|
+
such as Foo::Bar, this isn't going to work well. In that case, you can
|
244
|
+
override the default mapping:
|
245
|
+
|
246
|
+
FixtureDependencies.class_map[:bar] = Foo::Bar
|
247
|
+
|
248
|
+
and then use :bar__baz to load the fixture with name baz for the model
|
249
|
+
Foo::Bar.
|
250
|
+
|
238
251
|
== Troubleshooting
|
239
252
|
|
240
253
|
If you run into problems with loading your fixtures, it can be difficult to see
|
data/lib/fixture_dependencies.rb
CHANGED
@@ -5,6 +5,7 @@ require 'yaml'
|
|
5
5
|
class FixtureDependencies
|
6
6
|
@fixtures = {}
|
7
7
|
@loaded = {}
|
8
|
+
@class_map = {}
|
8
9
|
@verbose = 0
|
9
10
|
|
10
11
|
# Load all record arguments into the database. If a single argument is
|
@@ -62,7 +63,7 @@ require 'fixture_dependencies/sequel' if defined?(Sequel::Model)
|
|
62
63
|
|
63
64
|
class << FixtureDependencies
|
64
65
|
attr_reader :fixtures, :loaded
|
65
|
-
attr_accessor :verbose, :fixture_path
|
66
|
+
attr_accessor :verbose, :fixture_path, :class_map
|
66
67
|
|
67
68
|
private
|
68
69
|
|
@@ -76,7 +77,7 @@ class << FixtureDependencies
|
|
76
77
|
# the fixture name.
|
77
78
|
def get(record)
|
78
79
|
model_name, name = split_name(record)
|
79
|
-
model = model_name
|
80
|
+
model = model_class(model_name)
|
80
81
|
model_method(:model_find, model_type(model), model, fixtures[model_name.to_sym][name.to_sym][fixture_pk(model)])
|
81
82
|
end
|
82
83
|
|
@@ -85,7 +86,7 @@ class << FixtureDependencies
|
|
85
86
|
def load_yaml(model_name)
|
86
87
|
raise(ArgumentError, "No fixture_path set. Use FixtureDependencies.fixture_path = ...") unless fixture_path
|
87
88
|
|
88
|
-
filename = model_name.
|
89
|
+
filename = model_class(model_name).table_name
|
89
90
|
yaml_path = File.join(fixture_path, "#{filename}.yml")
|
90
91
|
|
91
92
|
if File.exist?(yaml_path)
|
@@ -121,6 +122,14 @@ class << FixtureDependencies
|
|
121
122
|
end
|
122
123
|
end
|
123
124
|
|
125
|
+
# Return the class associated with the given model_name. By default, the
|
126
|
+
# class name is automagically derived from the model name, however this
|
127
|
+
# can be overridden by <tt>FixtureDependencies.class_map[:name] =
|
128
|
+
# Some::Class</tt>.
|
129
|
+
def model_class(model_name)
|
130
|
+
class_map[model_name.to_sym] || model_name.camelize.constantize
|
131
|
+
end
|
132
|
+
|
124
133
|
# Split the fixture name into the name of the model and the name of
|
125
134
|
# the individual fixture.
|
126
135
|
def split_name(name)
|
@@ -139,7 +148,7 @@ class << FixtureDependencies
|
|
139
148
|
puts "#{spaces}load stack:#{loading.inspect}" if verbose > 1
|
140
149
|
loading.push(record)
|
141
150
|
model_name, name = split_name(record)
|
142
|
-
model = model_name
|
151
|
+
model = model_class(model_name)
|
143
152
|
unless loaded[model_name.to_sym]
|
144
153
|
puts "#{spaces}loading #{model.table_name}.yml" if verbose > 0
|
145
154
|
load_yaml(model_name)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fixture_dependencies
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Evans
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-03 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email: code@jeremyevans.net
|