fabrication 2.2.3 → 2.3.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.
data/lib/fabrication.rb
CHANGED
data/lib/fabrication/config.rb
CHANGED
@@ -5,7 +5,11 @@ module Fabrication
|
|
5
5
|
def configure; yield self end
|
6
6
|
|
7
7
|
def reset_defaults
|
8
|
-
@fabricator_path =
|
8
|
+
@fabricator_path =
|
9
|
+
@path_prefix =
|
10
|
+
@active_support =
|
11
|
+
@sequence_start =
|
12
|
+
nil
|
9
13
|
end
|
10
14
|
|
11
15
|
def fabricator_path
|
@@ -18,6 +22,9 @@ module Fabrication
|
|
18
22
|
end
|
19
23
|
alias fabricator_dir= fabricator_path=
|
20
24
|
|
25
|
+
attr_writer :sequence_start
|
26
|
+
def sequence_start; @sequence_start ||= 0 end
|
27
|
+
|
21
28
|
attr_writer :path_prefix
|
22
29
|
def path_prefix
|
23
30
|
@path_prefix ||= defined?(Rails) ? Rails.root : "."
|
@@ -56,7 +56,9 @@ class Fabrication::Schematic::Definition
|
|
56
56
|
Fabrication.schematics.build_stack << self
|
57
57
|
merge(overrides, &block).instance_eval do
|
58
58
|
generator.new(klass).build(attributes, callbacks)
|
59
|
-
end
|
59
|
+
end
|
60
|
+
ensure
|
61
|
+
Fabrication.schematics.build_stack.pop
|
60
62
|
end
|
61
63
|
|
62
64
|
def fabricate(overrides={}, &block)
|
@@ -98,7 +100,6 @@ class Fabrication::Schematic::Definition
|
|
98
100
|
end
|
99
101
|
|
100
102
|
def method_missing(method_name, *args, &block)
|
101
|
-
method_name = parse_method_name(method_name)
|
102
103
|
params = Fabrication::Support.extract_options!(args)
|
103
104
|
value = args.first
|
104
105
|
block = generate_value(method_name, params) if args.empty? && !block_given?
|
@@ -113,21 +114,13 @@ class Fabrication::Schematic::Definition
|
|
113
114
|
callbacks[:initialize_with] = block
|
114
115
|
end
|
115
116
|
|
116
|
-
def parse_method_name(method_name)
|
117
|
-
if method_name.to_s.end_with?("!")
|
118
|
-
warn("DEPRECATION WARNING: Using the \"!\" in Fabricators is no longer supported. Please remove all occurrances")
|
119
|
-
method_name = method_name.to_s.chomp("!").to_sym
|
120
|
-
end
|
121
|
-
method_name
|
122
|
-
end
|
123
|
-
|
124
117
|
def transient(*field_names)
|
125
118
|
field_names.each do |field_name|
|
126
119
|
append_or_update_attribute(field_name, nil, transient: true)
|
127
120
|
end
|
128
121
|
end
|
129
122
|
|
130
|
-
def sequence(name=Fabrication::Sequencer::DEFAULT, start=
|
123
|
+
def sequence(name=Fabrication::Sequencer::DEFAULT, start=nil, &block)
|
131
124
|
name = "#{self.klass.to_s.downcase.gsub(/::/, '_')}_#{name}"
|
132
125
|
Fabrication::Sequencer.sequence(name, start, &block)
|
133
126
|
end
|
@@ -135,13 +128,11 @@ class Fabrication::Schematic::Definition
|
|
135
128
|
private
|
136
129
|
|
137
130
|
def generate_value(name, params)
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
params[:count] ||= 1 if !params[:count]
|
142
|
-
Proc.new { Fabricate.build(params[:fabricator] || name.to_sym) }
|
131
|
+
if params[:count]
|
132
|
+
name = name.to_s.singularize if name.to_s.respond_to?(:singularize)
|
133
|
+
Proc.new { Fabricate.build(params[:fabricator] || name) }
|
143
134
|
else
|
144
|
-
Proc.new { Fabricate(params[:fabricator] || name
|
135
|
+
Proc.new { Fabricate(params[:fabricator] || name) }
|
145
136
|
end
|
146
137
|
end
|
147
138
|
end
|
@@ -2,8 +2,8 @@ class Fabrication::Sequencer
|
|
2
2
|
|
3
3
|
DEFAULT = :_default
|
4
4
|
|
5
|
-
def self.sequence(name=DEFAULT, start=
|
6
|
-
idx = sequences[name] ||= start
|
5
|
+
def self.sequence(name=DEFAULT, start=nil, &block)
|
6
|
+
idx = sequences[name] ||= start || Fabrication::Config.sequence_start
|
7
7
|
if block_given?
|
8
8
|
sequence_blocks[name] = block.to_proc
|
9
9
|
else
|
@@ -20,4 +20,10 @@ class Fabrication::Sequencer
|
|
20
20
|
def self.sequence_blocks
|
21
21
|
@sequence_blocks ||= {}
|
22
22
|
end
|
23
|
+
|
24
|
+
def self.reset
|
25
|
+
Fabrication::Config.sequence_start = nil
|
26
|
+
@sequences = nil
|
27
|
+
@sequence_blocks = nil
|
28
|
+
end
|
23
29
|
end
|
data/lib/fabrication/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fabrication
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-10-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|