flextures 3.1.3 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +6 -1
- data/Gemfile.lock +17 -13
- data/README.ja.md +15 -13
- data/README.md +9 -8
- data/Rakefile +5 -0
- data/flextures.gemspec +3 -1
- data/lib/flextures.rb +0 -3
- data/lib/flextures/flextures.rake +1 -42
- data/lib/flextures/flextures.rb +4 -7
- data/lib/flextures/flextures_base_config.rb +17 -28
- data/lib/flextures/flextures_command.rb +3 -5
- data/lib/flextures/flextures_dumper.rb +27 -29
- data/lib/flextures/flextures_extension_modules.rb +1 -14
- data/lib/flextures/flextures_factory.rb +3 -5
- data/lib/flextures/flextures_loader.rb +49 -51
- data/lib/flextures/flextures_railtie.rb +0 -2
- data/lib/flextures/rspec_flextures_support.rb +125 -71
- data/lib/flextures/version.rb +1 -1
- data/test/models/flextures_test.rb +8 -0
- data/test/test_helper.rb +4 -3
- data/test/unit/flextures_args_test.rb +178 -0
- data/test/unit/flextures_dumper_test.rb +232 -0
- data/test/unit/{test_flextures_extention_modules.rb → flextures_extention_modules_test.rb} +18 -13
- data/test/unit/flextures_hooks_test.rb +111 -0
- data/test/unit/flextures_loader_test.rb +313 -0
- metadata +9 -18
- data/lib/flextures/testunit_flextures_support.rb +0 -43
- data/test/unit/test_flextures.rb +0 -8
- data/test/unit/test_flextures_args.rb +0 -147
- data/test/unit/test_flextures_dumper.rb +0 -187
- data/test/unit/test_flextures_hooks.rb +0 -90
- data/test/unit/test_flextures_loader.rb +0 -271
- data/test/unit/test_simple.rb +0 -8
@@ -1,19 +1,6 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
require 'ostruct'
|
4
2
|
|
5
3
|
module Flextures
|
6
|
-
# OpenStruct hack in flextures Plug-in
|
7
|
-
class OpenStruct < ::OpenStruct
|
8
|
-
# Struct Data translate to Hash
|
9
|
-
def to_hash
|
10
|
-
(self.methods - ::OpenStruct.new.methods)
|
11
|
-
.select{ |name| name.to_s.match(/\w+=/) }
|
12
|
-
.map{ |name| name.to_s.gsub(/=/,'').to_sym }
|
13
|
-
.reduce({}){ |k,h| h[k]=self.send(k); h }
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
4
|
module Extensions
|
18
5
|
module Array
|
19
6
|
# use Object#extend
|
@@ -21,7 +8,7 @@ module Flextures
|
|
21
8
|
# @return [Hash] tanslated Hash data
|
22
9
|
# example:
|
23
10
|
# hash = array.extend(Extensions::Array).to_hash(keys)
|
24
|
-
def to_hash(
|
11
|
+
def to_hash(keys)
|
25
12
|
values = self
|
26
13
|
values = values[0..keys.size-1] if keys.size < values.size
|
27
14
|
values = values+[nil]*(keys.size-values.size) if keys.size > values.size
|
@@ -1,5 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
module Flextures
|
4
2
|
# Flextures FactoryFilter is program to translate ActiveRecord data
|
5
3
|
class LoadFilter
|
@@ -10,7 +8,7 @@ module Flextures
|
|
10
8
|
# @params [String] table_name
|
11
9
|
# @params [Array] options arguments ActiveRecord Model
|
12
10
|
# @params [Proc] block FactoryFilter
|
13
|
-
def self.define(
|
11
|
+
def self.define(table_name, *options, &block)
|
14
12
|
h={ block: block }
|
15
13
|
options.each do |o|
|
16
14
|
begin
|
@@ -40,12 +38,12 @@ module Flextures
|
|
40
38
|
# @params options
|
41
39
|
# @params block
|
42
40
|
# @return Flextures::Factory
|
43
|
-
def self.define(
|
41
|
+
def self.define(table_name, hash)
|
44
42
|
FACTORIES[table_name.to_sym]=hash
|
45
43
|
end
|
46
44
|
|
47
45
|
# get FactoryFilter
|
48
|
-
def self.get(
|
46
|
+
def self.get(table_name)
|
49
47
|
FACTORIES[table_name.to_sym]
|
50
48
|
end
|
51
49
|
def self.[](table_name); self.get(table_name); end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
require 'ostruct'
|
4
2
|
require 'csv'
|
5
3
|
|
@@ -88,28 +86,28 @@ module Flextures
|
|
88
86
|
|
89
87
|
def loads(*fixtures)
|
90
88
|
# キャッシュが有効 ∧ 呼んだ事無いファイル
|
91
|
-
load_list = self.class.parse_flextures_options(
|
89
|
+
load_list = self.class.parse_flextures_options(@options, *fixtures)
|
92
90
|
load_list.sort(&self.class.loading_order).each do |params|
|
93
91
|
load(params)
|
94
92
|
end
|
95
93
|
end
|
96
94
|
|
97
95
|
def load(params)
|
98
|
-
return if cashable?(params) and loaded?(params)
|
99
|
-
@already_loaded_fixtures[params[:table]] = params
|
100
96
|
self.class.load(params)
|
101
97
|
end
|
102
98
|
|
103
|
-
def
|
104
|
-
|
99
|
+
def self.cache?(params)
|
100
|
+
if params.first.is_a?(Hash)
|
101
|
+
param = params.first
|
102
|
+
param[:cache] == true
|
103
|
+
end
|
105
104
|
end
|
106
105
|
|
107
|
-
def
|
108
|
-
equal_table_data?(@already_loaded_fixtures[params[:table]], params)
|
106
|
+
def reset_cache
|
109
107
|
end
|
110
108
|
|
111
109
|
# compare
|
112
|
-
def equal_table_data?(src,dst)
|
110
|
+
def equal_table_data?(src, dst)
|
113
111
|
return false unless src.is_a?(Hash)
|
114
112
|
return false unless dst.is_a?(Hash)
|
115
113
|
(src.to_a - dst.to_a).empty?
|
@@ -118,9 +116,8 @@ module Flextures
|
|
118
116
|
# called by Rspec or Should
|
119
117
|
# set options
|
120
118
|
# @params [Hash] options exmple : { cashe: true, dir: "models/users" }
|
121
|
-
def set_options(
|
119
|
+
def set_options(options)
|
122
120
|
@options.merge!(options)
|
123
|
-
@options
|
124
121
|
end
|
125
122
|
|
126
123
|
# called by Rspec or Should after filter
|
@@ -138,12 +135,12 @@ module Flextures
|
|
138
135
|
# parse flextures function arguments
|
139
136
|
# @params [Hash] fixtures function arguments
|
140
137
|
# @return [Array] formatted load options
|
141
|
-
def self.parse_flextures_options(
|
138
|
+
def self.parse_flextures_options(base_options, *fixtures)
|
142
139
|
options = {}
|
143
140
|
options = fixtures.shift if fixtures.size > 1 and fixtures.first.is_a?(Hash)
|
144
141
|
|
145
|
-
options[:dir] = self.parse_controller_option(
|
146
|
-
options[:dir] = self.parse_model_options(
|
142
|
+
options[:dir] = self.parse_controller_option(options) if options[:controller]
|
143
|
+
options[:dir] = self.parse_model_options(options) if options[:model]
|
147
144
|
|
148
145
|
# :all value load all loadable fixtures
|
149
146
|
fixtures = Flextures::deletable_tables if fixtures.size==1 and :all == fixtures.first
|
@@ -161,7 +158,7 @@ module Flextures
|
|
161
158
|
# flextures :users => :users2 # :table_name => :file_name
|
162
159
|
#
|
163
160
|
# @params [Hash] fixtures load table data
|
164
|
-
def self.flextures(
|
161
|
+
def self.flextures(*fixtures)
|
165
162
|
loader = Flextures::Loader::Instance.new
|
166
163
|
loader.loads(*fixtures)
|
167
164
|
end
|
@@ -178,7 +175,7 @@ module Flextures
|
|
178
175
|
# load fixture data
|
179
176
|
# fixture file prefer YAML to CSV
|
180
177
|
# @params [Hash] format file load format(table name, file name, options...)
|
181
|
-
def self.load(
|
178
|
+
def self.load(format)
|
182
179
|
file_name, method = file_exist(format)
|
183
180
|
if method
|
184
181
|
send(method, format)
|
@@ -189,31 +186,31 @@ module Flextures
|
|
189
186
|
|
190
187
|
# load CSV data
|
191
188
|
# @params [Hash] format file load format(table name, file name, options...)
|
192
|
-
def self.csv(
|
189
|
+
def self.csv(format)
|
193
190
|
type = :csv
|
194
|
-
file_name, ext = file_exist(
|
195
|
-
return unless self.file_loadable?(
|
196
|
-
klass, filter = self.create_model_filter(
|
197
|
-
self.load_csv(
|
191
|
+
file_name, ext = file_exist(format, [type])
|
192
|
+
return unless self.file_loadable?(format, file_name)
|
193
|
+
klass, filter = self.create_model_filter(format, file_name, type)
|
194
|
+
self.load_csv(format, klass, filter, file_name)
|
198
195
|
end
|
199
196
|
|
200
197
|
# load YAML data
|
201
198
|
# @params [Hash] format file load format( table: name, file: name, options...)
|
202
|
-
def self.yml(
|
199
|
+
def self.yml(format)
|
203
200
|
type = :yml
|
204
|
-
file_name, ext = file_exist(
|
201
|
+
file_name, ext = file_exist(format, [type])
|
205
202
|
|
206
|
-
return unless self.file_loadable?(
|
203
|
+
return unless self.file_loadable?(format, file_name)
|
207
204
|
|
208
|
-
klass, filter = self.create_model_filter(
|
209
|
-
self.load_yml(
|
205
|
+
klass, filter = self.create_model_filter(format, file_name, type)
|
206
|
+
self.load_yml(format, klass, filter, file_name)
|
210
207
|
end
|
211
208
|
|
212
|
-
def self.load_csv(
|
209
|
+
def self.load_csv(format, klass, filter, file_name)
|
213
210
|
attributes = klass.columns.map(&:name)
|
214
|
-
CSV.open(
|
211
|
+
CSV.open(file_name) do |csv|
|
215
212
|
keys = csv.shift # active record column names
|
216
|
-
warning(
|
213
|
+
warning("CSV", attributes, keys) unless format[:silent]
|
217
214
|
csv.each do |values|
|
218
215
|
h = values.extend(Extensions::Array).to_hash(keys)
|
219
216
|
filter.call(h)
|
@@ -222,12 +219,12 @@ module Flextures
|
|
222
219
|
file_name
|
223
220
|
end
|
224
221
|
|
225
|
-
def self.load_yml(
|
226
|
-
yaml = YAML.load(
|
222
|
+
def self.load_yml(format, klass, filter, file_name)
|
223
|
+
yaml = YAML.load(File.open(file_name))
|
227
224
|
return false unless yaml # if file is empty
|
228
225
|
attributes = klass.columns.map(&:name)
|
229
226
|
yaml.each do |k,h|
|
230
|
-
warning(
|
227
|
+
warning("YAML", attributes, h.keys) unless format[:silent]
|
231
228
|
filter.call(h)
|
232
229
|
end
|
233
230
|
file_name
|
@@ -237,7 +234,7 @@ module Flextures
|
|
237
234
|
# load directroy is change
|
238
235
|
# spec/fixtures/:controller_name/:action_name/
|
239
236
|
# @return [String] directory path
|
240
|
-
def self.parse_controller_option(
|
237
|
+
def self.parse_controller_option(options)
|
241
238
|
controller_dir = ["controllers"]
|
242
239
|
controller_dir<< options[:controller] if options[:controller]
|
243
240
|
controller_dir<< options[:action] if options[:controller] and options[:action]
|
@@ -248,7 +245,7 @@ module Flextures
|
|
248
245
|
# load directroy is change
|
249
246
|
# spec/fixtures/:model_name/:method_name/
|
250
247
|
# @return [String] directory path
|
251
|
-
def self.parse_model_options(
|
248
|
+
def self.parse_model_options(options)
|
252
249
|
model_dir = ["models"]
|
253
250
|
model_dir<< options[:model] if options[:model]
|
254
251
|
model_dir<< options[:method] if options[:model] and options[:method]
|
@@ -258,7 +255,7 @@ module Flextures
|
|
258
255
|
# example:
|
259
256
|
# self.create_stair_list("foo/bar/baz")
|
260
257
|
# return ["foo/bar/baz","foo/bar","foo",""]
|
261
|
-
def self.stair_list(
|
258
|
+
def self.stair_list(dir, stair=true)
|
262
259
|
return [dir.to_s] unless stair
|
263
260
|
l = []
|
264
261
|
dir.to_s.split("/").reduce([]){ |a,d| a<< d; l.unshift(a.join("/")); a }
|
@@ -269,12 +266,12 @@ module Flextures
|
|
269
266
|
# parse format option and return load file info
|
270
267
|
# @param [Hash] format load file format informations
|
271
268
|
# @return [Array] [file_name, filt_type(:csv or :yml)]
|
272
|
-
def self.file_exist(
|
269
|
+
def self.file_exist(format, type = [:csv, :yml])
|
273
270
|
table_name = format[:table].to_s
|
274
271
|
file_name = (format[:file] || format[:table]).to_s
|
275
|
-
base_dir_name = Flextures::
|
272
|
+
base_dir_name = Flextures::Configuration.load_directory
|
276
273
|
self.stair_list(format[:dir], format[:stair]).each do |dir|
|
277
|
-
file_path = File.join(
|
274
|
+
file_path = File.join(base_dir_name, dir, file_name)
|
278
275
|
return ["#{file_path}.csv", :csv] if type.member?(:csv) and File.exist?("#{file_path}.csv")
|
279
276
|
return ["#{file_path}.yml", :yml] if type.member?(:yml) and File.exist?("#{file_path}.yml")
|
280
277
|
end
|
@@ -283,8 +280,8 @@ module Flextures
|
|
283
280
|
|
284
281
|
# file load check
|
285
282
|
# @return [Bool] lodable is 'true'
|
286
|
-
def self.file_loadable?(
|
287
|
-
return unless File.exist?(
|
283
|
+
def self.file_loadable?(format, file_name)
|
284
|
+
return unless File.exist?(file_name)
|
288
285
|
puts "try loading #{file_name}" if !format[:silent] and ![:fun].include?(format[:loader])
|
289
286
|
true
|
290
287
|
end
|
@@ -296,17 +293,18 @@ module Flextures
|
|
296
293
|
end
|
297
294
|
|
298
295
|
# create filter and table info
|
299
|
-
def self.create_model_filter(
|
296
|
+
def self.create_model_filter(format, file_name, type)
|
300
297
|
table_name = format[:table].to_s
|
301
|
-
klass = PARENT::create_model(
|
298
|
+
klass = PARENT::create_model(table_name)
|
299
|
+
# binding.pry
|
302
300
|
# if you use 'rails3_acts_as_paranoid' gem, that is not delete data 'delete_all' method
|
303
|
-
klass.send(
|
301
|
+
klass.send(klass.respond_to?(:delete_all!) ? :delete_all! : :delete_all)
|
304
302
|
|
305
303
|
filter = ->(h){
|
306
|
-
filter = create_filter(
|
304
|
+
filter = create_filter(klass, LoadFilter[table_name.to_sym], file_name, type, format)
|
307
305
|
o = klass.new
|
308
|
-
o = filter.call(
|
309
|
-
o.save(
|
306
|
+
o = filter.call(o, h)
|
307
|
+
o.save(validate: false)
|
310
308
|
o
|
311
309
|
}
|
312
310
|
[klass, filter]
|
@@ -322,24 +320,24 @@ module Flextures
|
|
322
320
|
# @params [Symbol] ext file type (:csv or :yml)
|
323
321
|
# @params [Hash] options other options
|
324
322
|
# @return [Proc] translate filter
|
325
|
-
def self.create_filter(
|
323
|
+
def self.create_filter(klass, factory, filename, ext, options)
|
326
324
|
columns = klass.columns
|
327
325
|
# data translat array to hash
|
328
326
|
column_hash = columns.reduce({}) { |h,col| h[col.name] = col; h }
|
329
327
|
lack_columns = columns.reject { |c| c.null and c.default }.map{ |o| o.name.to_sym }
|
330
328
|
# default value shound not be null columns
|
331
329
|
not_nullable_columns = columns.reject(&:null).map(&:name)
|
332
|
-
strict_filter
|
330
|
+
strict_filter = ->(o,h){
|
333
331
|
# if value is not 'nil', value translate suitable form
|
334
332
|
h.each{ |k,v| v.nil? || o[k] = (TRANSLATER[column_hash[k].type] && TRANSLATER[column_hash[k].type].call(v)) }
|
335
333
|
# call FactoryFilter
|
336
|
-
factory.call(*[o, filename, ext][0,factory.arity]) if factory and !options[:unfilter]
|
334
|
+
factory.call(*[o, filename, ext][0, factory.arity]) if factory and !options[:unfilter]
|
337
335
|
o
|
338
336
|
}
|
339
337
|
# receives hased data and translate ActiveRecord Model data
|
340
338
|
# loose filter correct error values
|
341
339
|
# strict filter don't correct errora values and raise error
|
342
|
-
loose_filter
|
340
|
+
loose_filter = ->(o,h){
|
343
341
|
h.reject! { |k,v| options[:minus].include?(k) } if options[:minus]
|
344
342
|
# if column name is not include database table columns, those names delete
|
345
343
|
h.select! { |k,v| column_hash[k] }
|
@@ -1,100 +1,154 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
|
1
|
+
# flextures function use like fixtures method in RSpec
|
4
2
|
module RSpec
|
5
3
|
module Rails
|
6
|
-
module
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
prepend_before(&block)
|
12
|
-
end
|
4
|
+
module FlextureSupport
|
5
|
+
@@once_included = false
|
6
|
+
def self.included(m)
|
7
|
+
init_tables
|
8
|
+
end
|
13
9
|
|
14
|
-
|
15
|
-
|
10
|
+
def self.init_tables
|
11
|
+
unless @@once_included
|
12
|
+
Flextures::init_tables
|
13
|
+
@@once_included = true
|
16
14
|
end
|
17
15
|
end
|
18
16
|
end
|
19
17
|
end
|
18
|
+
|
19
|
+
RSpec.configure do |c|
|
20
|
+
c.include RSpec::Rails::FlextureSupport
|
21
|
+
end
|
20
22
|
end
|
21
23
|
|
22
|
-
#
|
23
|
-
module
|
24
|
-
module
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
24
|
+
# override setup_fixtures function
|
25
|
+
module ActiveRecord
|
26
|
+
module TestFixtures
|
27
|
+
PARENT = self
|
28
|
+
@@flextures_loader = Flextures::Loader.new
|
29
|
+
@@all_cached_flextures = {}
|
30
|
+
@@already_loaded_flextures = {}
|
31
|
+
|
32
|
+
alias :setup_fixtures_bkup :setup_fixtures
|
33
|
+
def setup_fixtures
|
34
|
+
Flextures::load_configurations
|
35
|
+
setup_fixtures_bkup
|
36
|
+
end
|
37
|
+
|
38
|
+
alias :teardown_fixtures_bkup :teardown_fixtures
|
39
|
+
def teardown_fixtures
|
40
|
+
teardown_fixtures_bkup
|
41
|
+
end
|
42
|
+
|
43
|
+
# load initial fixtures
|
44
|
+
# There is fixtures load before start rspec
|
45
|
+
def self.init_load_should_cache_fixtures(table_load_settings)
|
46
|
+
table_load_settings.each do |load_setting|
|
47
|
+
if should_cache_setting?(load_setting) and !cached_table?(load_setting)
|
48
|
+
@@flextures_loader.load(load_setting)
|
49
|
+
set_cached_settng_list(load_setting)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# Usually, fixture is cached when is exist under "spec/fixture/" directly.
|
55
|
+
def self.should_cache_setting?(load_setting)
|
56
|
+
load_setting.keys.sort == %i[table file loader].sort &&
|
57
|
+
load_setting[:file].to_s == load_setting[:table].to_s &&
|
58
|
+
load_setting[:loader] == :fun
|
59
|
+
end
|
60
|
+
|
61
|
+
# check: same data is exist in DB.
|
62
|
+
def self.cached_table?(load_setting)
|
63
|
+
flextures_cached?(load_setting) || fixture_cached?(load_setting)
|
64
|
+
end
|
65
|
+
|
66
|
+
def self.flextures_cached?(load_setting)
|
67
|
+
config = @@all_cached_flextures[load_setting[:table]]
|
68
|
+
config && config == load_setting
|
69
|
+
end
|
70
|
+
|
71
|
+
# flextures check fixture function already loaded data.
|
72
|
+
def self.fixture_cached?(load_setting)
|
73
|
+
default_file_path = File.join(Flextures::Configuration.load_directory, "#{load_setting[:table]}.yml")
|
74
|
+
|
75
|
+
load_setting[:file] == default_file_path &&
|
76
|
+
yml_fixture_cached?(load_setting[:table])
|
77
|
+
end
|
78
|
+
|
79
|
+
def self.yml_fixture_cached?(table_name)
|
80
|
+
connection = ActiveRecord::Base.connection
|
81
|
+
!!ActiveRecord::FixtureSet.fixture_is_cached?(connection, table_name)
|
82
|
+
end
|
83
|
+
|
84
|
+
def self.set_cached_settng_list(load_setting)
|
85
|
+
@@all_cached_flextures[load_setting[:table]] = load_setting
|
86
|
+
end
|
87
|
+
|
88
|
+
def load_not_cached_fixtures(table_load_settings)
|
89
|
+
table_load_settings.each do |load_setting|
|
90
|
+
if PARENT.cached_table?(load_setting) and load_setting[:cache] != false
|
91
|
+
next
|
92
|
+
else
|
93
|
+
@@flextures_loader.load(load_setting)
|
32
94
|
end
|
33
95
|
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def load_all_fixtures(table_load_settings)
|
99
|
+
table_load_settings.each do |load_setting|
|
100
|
+
@@flextures_loader.load(load_setting)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
module ClassMethods
|
105
|
+
def get_or_initialize_flextures_loader_options
|
106
|
+
@flextures_loader_options ||= {}
|
107
|
+
end
|
108
|
+
|
109
|
+
def flextures_loader_options
|
110
|
+
get_or_initialize_flextures_loader_options
|
111
|
+
end
|
112
|
+
|
113
|
+
def flextures_loader
|
114
|
+
PARENT.class_variable_get(:@@flextures_loader)
|
115
|
+
end
|
34
116
|
|
35
|
-
|
36
|
-
|
37
|
-
@@flextures_loader ||= Flextures::Loader.new(*_)
|
117
|
+
def flextures(*fixtures)
|
118
|
+
loads_use_cache_fixtures(*fixtures)
|
38
119
|
end
|
39
120
|
|
40
|
-
def
|
41
|
-
|
121
|
+
def loads_use_cache_fixtures(*fixtures)
|
122
|
+
table_load_settings = Flextures::Loader.parse_flextures_options(flextures_loader_options, *fixtures)
|
123
|
+
|
124
|
+
if use_transactional_fixtures
|
125
|
+
PARENT.init_load_should_cache_fixtures(table_load_settings)
|
126
|
+
before do
|
127
|
+
load_not_cached_fixtures(table_load_settings)
|
128
|
+
end
|
129
|
+
else
|
130
|
+
before do
|
131
|
+
load_all_fixtures(table_load_settings)
|
132
|
+
end
|
133
|
+
end
|
42
134
|
end
|
43
135
|
|
44
136
|
# delete table data
|
45
137
|
# @params [Array] _ table names
|
46
|
-
def flextures_delete(
|
47
|
-
|
48
|
-
flextures_before do
|
138
|
+
def flextures_delete(*_)
|
139
|
+
before do
|
49
140
|
if _.empty?
|
50
141
|
Flextures::init_tables
|
51
142
|
else
|
52
|
-
Flextures::delete_tables(
|
143
|
+
Flextures::delete_tables(*_)
|
53
144
|
end
|
54
145
|
end
|
55
146
|
end
|
56
147
|
|
57
|
-
def flextures_set_options(
|
58
|
-
|
59
|
-
|
60
|
-
flextures_loader.set_options( options )
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
module Rails
|
67
|
-
module FlextureSupport
|
68
|
-
def self.included(m)
|
69
|
-
Flextures::init_tables
|
148
|
+
def flextures_set_options(options)
|
149
|
+
@flextures_loader_options = get_or_initialize_flextures_loader_options
|
150
|
+
@flextures_loader_options = @flextures_loader_options.merge(options)
|
70
151
|
end
|
71
152
|
end
|
72
153
|
end
|
73
|
-
|
74
|
-
RSpec.configure do |c|
|
75
|
-
c.include RSpec::Rails::FlextureSupport
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
# override setup_fixtures function
|
80
|
-
module ActiveRecord
|
81
|
-
module TestFixtures
|
82
|
-
alias :setup_fixtures_bkup :setup_fixtures
|
83
|
-
def setup_fixtures
|
84
|
-
Flextures::init_load
|
85
|
-
setup_fixtures_bkup
|
86
|
-
set_transactional_filter_params
|
87
|
-
end
|
88
|
-
|
89
|
-
# nilで無い時は値をtransactional_filterが有効
|
90
|
-
def set_transactional_filter_params
|
91
|
-
return if Flextures::Config.use_transactional_fixtures.nil?
|
92
|
-
self.use_transactional_fixtures = Flextures::Config.use_transactional_fixtures
|
93
|
-
end
|
94
|
-
|
95
|
-
alias :teardown_fixtures_bkup :teardown_fixtures
|
96
|
-
def teardown_fixtures
|
97
|
-
teardown_fixtures_bkup
|
98
|
-
end
|
99
|
-
end
|
100
154
|
end
|