flextures 3.0.1 → 3.1.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 +7 -0
- data/.gitignore +48 -0
- data/Gemfile +8 -13
- data/Gemfile.lock +9 -12
- data/{README.ja.rdoc → README.ja.md} +81 -56
- data/README.md +156 -0
- data/Rakefile +1 -57
- data/flextures.gemspec +19 -71
- data/lib/flextures/flextures.rb +22 -24
- data/lib/flextures/flextures_base_config.rb +1 -2
- data/lib/flextures/flextures_command.rb +0 -1
- data/lib/flextures/flextures_dumper.rb +14 -15
- data/lib/flextures/flextures_extension_modules.rb +3 -5
- data/lib/flextures/flextures_factory.rb +5 -6
- data/lib/flextures/flextures_loader.rb +117 -85
- data/lib/flextures/rspec_flextures_support.rb +49 -13
- data/lib/flextures/testunit_flextures_support.rb +16 -8
- data/lib/flextures/version.rb +1 -2
- metadata +41 -35
- data/History.txt +0 -9
- data/README.rdoc +0 -133
- data/VERSION +0 -1
data/Rakefile
CHANGED
@@ -1,57 +1 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require 'rubygems'
|
4
|
-
require 'bundler'
|
5
|
-
begin
|
6
|
-
Bundler.setup(:default, :development)
|
7
|
-
rescue Bundler::BundlerError => e
|
8
|
-
$stderr.puts e.message
|
9
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
-
exit e.status_code
|
11
|
-
end
|
12
|
-
require 'rake'
|
13
|
-
|
14
|
-
require 'jeweler'
|
15
|
-
Jeweler::Tasks.new do |gem|
|
16
|
-
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
-
gem.name = "flextures"
|
18
|
-
gem.homepage = "http://github.com/baban/flextures"
|
19
|
-
gem.license = "MIT"
|
20
|
-
gem.summary = %Q{load and dump fixtures}
|
21
|
-
gem.description = %Q{load and dump fixtures}
|
22
|
-
gem.email = "babanba.n@gmail.com"
|
23
|
-
gem.authors = ["baban"]
|
24
|
-
# dependencies defined in Gemfile
|
25
|
-
end
|
26
|
-
Jeweler::RubygemsDotOrgTasks.new
|
27
|
-
|
28
|
-
require 'rake/testtask'
|
29
|
-
Rake::TestTask.new(:test) do |test|
|
30
|
-
test.libs << 'lib' << 'test'
|
31
|
-
test.pattern = 'test/**/test_*.rb'
|
32
|
-
test.verbose = true
|
33
|
-
end
|
34
|
-
|
35
|
-
=begin
|
36
|
-
require 'rcov/rcovtask'
|
37
|
-
Rcov::RcovTask.new do |test|
|
38
|
-
test.libs << 'test'
|
39
|
-
test.pattern = 'test/**/test_*.rb'
|
40
|
-
test.verbose = true
|
41
|
-
test.rcov_opts << '--exclude "gems/*"'
|
42
|
-
end
|
43
|
-
=end
|
44
|
-
|
45
|
-
task :default => :test
|
46
|
-
|
47
|
-
require 'rdoc/task'
|
48
|
-
Rake::RDocTask.new do |rdoc|
|
49
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
50
|
-
|
51
|
-
rdoc.rdoc_dir = 'rdoc'
|
52
|
-
rdoc.title = "flextures #{version}"
|
53
|
-
rdoc.rdoc_files.include('README*')
|
54
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
55
|
-
rdoc.options = ["--charset", "utf-8", "--line-numbers"]
|
56
|
-
end
|
57
|
-
|
1
|
+
require "bundler/gem_tasks"
|
data/flextures.gemspec
CHANGED
@@ -1,75 +1,23 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'flextures/version'
|
5
5
|
|
6
|
-
Gem::Specification.new do |
|
7
|
-
|
8
|
-
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "flextures"
|
8
|
+
spec.version = Flextures::VERSION
|
9
|
+
spec.authors = ["baban"]
|
10
|
+
spec.email = ["babanba.n@gmail.com"]
|
11
|
+
spec.summary = %q{load and dump fixtures.}
|
12
|
+
spec.description = %q{load and dump fixtures.}
|
13
|
+
spec.homepage = "http://github.com/baban/flextures"
|
14
|
+
spec.license = "MIT"
|
9
15
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
s.email = "babanba.n@gmail.com"
|
15
|
-
s.extra_rdoc_files = [
|
16
|
-
"LICENSE.txt",
|
17
|
-
"README.ja.rdoc",
|
18
|
-
"README.rdoc"
|
19
|
-
]
|
20
|
-
s.files = [
|
21
|
-
".document",
|
22
|
-
"CHANGELOG",
|
23
|
-
"Gemfile",
|
24
|
-
"Gemfile.lock",
|
25
|
-
"History.txt",
|
26
|
-
"LICENSE.txt",
|
27
|
-
"README.ja.rdoc",
|
28
|
-
"README.rdoc",
|
29
|
-
"Rakefile",
|
30
|
-
"VERSION",
|
31
|
-
"flextures.gemspec",
|
32
|
-
"lib/flextures.rb",
|
33
|
-
"lib/flextures/flextures.rake",
|
34
|
-
"lib/flextures/flextures.rb",
|
35
|
-
"lib/flextures/flextures_base_config.rb",
|
36
|
-
"lib/flextures/flextures_command.rb",
|
37
|
-
"lib/flextures/flextures_dumper.rb",
|
38
|
-
"lib/flextures/flextures_extension_modules.rb",
|
39
|
-
"lib/flextures/flextures_factory.rb",
|
40
|
-
"lib/flextures/flextures_loader.rb",
|
41
|
-
"lib/flextures/flextures_railtie.rb",
|
42
|
-
"lib/flextures/rspec_flextures_support.rb",
|
43
|
-
"lib/flextures/testunit_flextures_support.rb",
|
44
|
-
"lib/flextures/version.rb",
|
45
|
-
"test/test_helper.rb",
|
46
|
-
"test/unit/test_flextures.rb",
|
47
|
-
"test/unit/test_flextures_args.rb",
|
48
|
-
"test/unit/test_flextures_dumper.rb",
|
49
|
-
"test/unit/test_flextures_extention_modules.rb",
|
50
|
-
"test/unit/test_flextures_hooks.rb",
|
51
|
-
"test/unit/test_flextures_loader.rb",
|
52
|
-
"test/unit/test_simple.rb"
|
53
|
-
]
|
54
|
-
s.homepage = "http://github.com/baban/flextures"
|
55
|
-
s.licenses = ["MIT"]
|
56
|
-
s.require_paths = ["lib"]
|
57
|
-
s.rubygems_version = "1.8.10"
|
58
|
-
s.summary = "load and dump fixtures"
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
59
20
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
64
|
-
s.add_development_dependency(%q<bundler>, ["= 1.3.5"])
|
65
|
-
s.add_development_dependency(%q<jeweler>, ["= 1.8.3"])
|
66
|
-
else
|
67
|
-
s.add_dependency(%q<bundler>, ["= 1.3.5"])
|
68
|
-
s.add_dependency(%q<jeweler>, ["= 1.8.3"])
|
69
|
-
end
|
70
|
-
else
|
71
|
-
s.add_dependency(%q<bundler>, ["= 1.3.5"])
|
72
|
-
s.add_dependency(%q<jeweler>, ["= 1.8.3"])
|
73
|
-
end
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.6"
|
22
|
+
spec.add_development_dependency "rake"
|
74
23
|
end
|
75
|
-
|
data/lib/flextures/flextures.rb
CHANGED
@@ -2,16 +2,15 @@
|
|
2
2
|
|
3
3
|
require 'ostruct'
|
4
4
|
require 'csv'
|
5
|
-
|
6
5
|
require "flextures/flextures_base_config"
|
7
6
|
require "flextures/flextures_extension_modules"
|
8
7
|
require "flextures/flextures_factory"
|
9
8
|
|
10
9
|
module Flextures
|
11
|
-
# ActiveRecord Model
|
10
|
+
# guessing ActiveRecord Model name by table_name and create
|
12
11
|
# @params [String|Symbol] table_name
|
13
12
|
# @params [ActiveRecord::Base] model class
|
14
|
-
def self.create_model table_name
|
13
|
+
def self.create_model( table_name )
|
15
14
|
# when Model is defined in FactoryFilter
|
16
15
|
a = ->{
|
17
16
|
f = Factory::FACTORIES[table_name.to_sym]
|
@@ -26,7 +25,7 @@ module Flextures
|
|
26
25
|
end
|
27
26
|
}
|
28
27
|
# when cannot guess Model name
|
29
|
-
c = ->{
|
28
|
+
c = ->{
|
30
29
|
Class.new(ActiveRecord::Base){ |o| o.table_name=table_name }
|
31
30
|
}
|
32
31
|
a.call || b.call || c.call
|
@@ -36,16 +35,16 @@ module Flextures
|
|
36
35
|
def self.init_load
|
37
36
|
if defined?(Rails) and Rails.root
|
38
37
|
[
|
39
|
-
|
40
|
-
|
41
|
-
].each { |fn|
|
38
|
+
File.join( Rails.root.to_path,"/config/flextures.config.rb" ),
|
39
|
+
File.join( Rails.root.to_path,"/config/flextures.factory.rb" ),
|
40
|
+
].each { |fn| File.exist?(fn) && load(fn) }
|
42
41
|
end
|
43
42
|
end
|
44
43
|
|
45
44
|
# @return [Array] flextures useable table names
|
46
45
|
def self.deletable_tables
|
47
46
|
tables = ActiveRecord::Base.connection.tables
|
48
|
-
Flextures::Config.ignore_tables.each { |name| tables.delete name }
|
47
|
+
Flextures::Config.ignore_tables.each { |name| tables.delete( name.to_s ) }
|
49
48
|
tables
|
50
49
|
end
|
51
50
|
|
@@ -61,7 +60,7 @@ module Flextures
|
|
61
60
|
end
|
62
61
|
end
|
63
62
|
|
64
|
-
def self.delete_tables *tables
|
63
|
+
def self.delete_tables( *tables )
|
65
64
|
tables.each do |name|
|
66
65
|
# if 'name' variable is 'database view', raise error
|
67
66
|
begin
|
@@ -73,7 +72,7 @@ module Flextures
|
|
73
72
|
|
74
73
|
# It is debug method to use like 'tab' method
|
75
74
|
# @params [Proc] dumper write dump information
|
76
|
-
def self.table_tap &dumper
|
75
|
+
def self.table_tap( &dumper )
|
77
76
|
tables = Flextures::deletable_tables
|
78
77
|
tables.each do |name|
|
79
78
|
# if 'name' variable is 'database view', raise error
|
@@ -85,10 +84,10 @@ module Flextures
|
|
85
84
|
end
|
86
85
|
end
|
87
86
|
|
88
|
-
# parse arguments functions
|
87
|
+
# parse arguments functions.
|
89
88
|
module ARGS
|
90
89
|
# parse rake ENV parameters
|
91
|
-
def self.parse option={}
|
90
|
+
def self.parse( option={} )
|
92
91
|
table_names = []
|
93
92
|
if v = (ENV["T"] or ENV["TABLE"])
|
94
93
|
table_names = v.split(',').map{ |name| { table: name, file: name } }
|
@@ -111,24 +110,24 @@ module Flextures
|
|
111
110
|
names.map{ |name| { table: name, file: name } }
|
112
111
|
end
|
113
112
|
}
|
114
|
-
# parse filename define parameters
|
113
|
+
# parse filename and define parameters.
|
115
114
|
table_names = fixtures_args_parser.call ENV["FIXTURES"] if ENV["FIXTURES"]
|
116
115
|
table_names = fixtures_args_parser.call ENV["FILE"] if ENV["FILE"]
|
117
116
|
table_names = fixtures_args_parser.call ENV["F"] if ENV["F"]
|
118
117
|
|
119
|
-
table_names = table_names.map{ |option| option.merge dir: ENV["DIR"] } if ENV["DIR"]
|
120
|
-
table_names = table_names.map{ |option| option.merge dir: ENV["D"] } if ENV["D"]
|
118
|
+
table_names = table_names.map{ |option| option.merge( dir: ENV["DIR"] ) } if ENV["DIR"]
|
119
|
+
table_names = table_names.map{ |option| option.merge( dir: ENV["D"] ) } if ENV["D"]
|
121
120
|
|
122
|
-
table_names = table_names.map{ |option| option.merge minus: ENV["MINUS"].to_s.split(",") } if ENV["MINUS"]
|
123
|
-
table_names = table_names.map{ |option| option.merge plus: ENV["PLUS"].to_s.split(",") } if ENV["PLUS"]
|
121
|
+
table_names = table_names.map{ |option| option.merge( minus: ENV["MINUS"].to_s.split(",") ) } if ENV["MINUS"]
|
122
|
+
table_names = table_names.map{ |option| option.merge( plus: ENV["PLUS"].to_s.split(",") ) } if ENV["PLUS"]
|
124
123
|
|
125
|
-
table_names = table_names.map{ |option| option.merge silent: true } if ENV["OPTION"].to_s.split(",").include?("silent")
|
126
|
-
table_names = table_names.map{ |option| option.merge unfilter: true } if ENV["OPTION"].to_s.split(",").include?("unfilter")
|
127
|
-
table_names = table_names.map{ |option| option.merge strict: true } if ENV["OPTION"].to_s.split(",").include?("strict")
|
128
|
-
table_names = table_names.map{ |option| option.merge stair: true } if ENV["OPTION"].to_s.split(",").include?("stair")
|
124
|
+
table_names = table_names.map{ |option| option.merge( silent: true ) } if ENV["OPTION"].to_s.split(",").include?("silent")
|
125
|
+
table_names = table_names.map{ |option| option.merge( unfilter: true ) } if ENV["OPTION"].to_s.split(",").include?("unfilter")
|
126
|
+
table_names = table_names.map{ |option| option.merge( strict: true ) } if ENV["OPTION"].to_s.split(",").include?("strict")
|
127
|
+
table_names = table_names.map{ |option| option.merge( stair: true ) } if ENV["OPTION"].to_s.split(",").include?("stair")
|
129
128
|
|
130
|
-
# if mode is 'read mode' and file is not exist value is not return
|
131
|
-
table_names.select!
|
129
|
+
# if mode is 'read mode' and file is not exist, value is not return.
|
130
|
+
table_names.select!(&exist) if option[:mode] && option[:mode] == 'read'
|
132
131
|
table_names
|
133
132
|
end
|
134
133
|
|
@@ -139,4 +138,3 @@ module Flextures
|
|
139
138
|
end
|
140
139
|
end
|
141
140
|
end
|
142
|
-
|
@@ -14,6 +14,7 @@ module Flextures
|
|
14
14
|
module Config
|
15
15
|
@@read_onlys=[]
|
16
16
|
@@configs={
|
17
|
+
use_transactional_fixtures: nil, # override activerecord base "use_transactional_fixtures" option if you set value boolean value
|
17
18
|
ignore_tables: ["schema_migrations"], # 'ignore_tables' table data is not deleted by flextures delete_all method
|
18
19
|
fixture_load_directory: "spec/fixtures/", # base load directory
|
19
20
|
fixture_dump_directory: "spec/fixtures/", # dump load directory
|
@@ -30,5 +31,3 @@ module Flextures
|
|
30
31
|
end
|
31
32
|
end
|
32
33
|
end
|
33
|
-
|
34
|
-
|
@@ -65,7 +65,7 @@ module Flextures
|
|
65
65
|
s = s.sub(/ +/, "") if s[0]==' '
|
66
66
|
is_nl = false
|
67
67
|
is_nl |= s["\n"]
|
68
|
-
is_nl |= ["[","]","{","}","|","#","@","~","!","'","$","&","^","<",">","?","-","+","=",";",":",".",",","*","`","(",")"].member?
|
68
|
+
is_nl |= ["[","]","{","}","|","#","@","~","!","'","$","&","^","<",">","?","-","+","=",";",":",".",",","*","`","(",")"].member?(s[0])
|
69
69
|
s = s.gsub(/\r\n/,"\n").gsub(/\r/,"\n") # 改行方法統一
|
70
70
|
s = "|-\n " + s.gsub(/\n/,"\n ") if is_nl
|
71
71
|
end
|
@@ -76,7 +76,7 @@ module Flextures
|
|
76
76
|
d
|
77
77
|
},
|
78
78
|
}
|
79
|
-
procs = rules.
|
79
|
+
procs = rules.reduce(proc{ |d| d }) { |sum,i| sum * (rule_map[i] || i) }
|
80
80
|
procs.call(val)
|
81
81
|
end
|
82
82
|
|
@@ -86,13 +86,13 @@ module Flextures
|
|
86
86
|
procs = (format == :yml)?
|
87
87
|
[:nullstr, :null, proc { |d| Base64.encode64(d) } ] :
|
88
88
|
[:null, proc { |d| Base64.encode64(d) } ]
|
89
|
-
self.translate_creater d, procs
|
89
|
+
self.translate_creater( d, procs )
|
90
90
|
},
|
91
91
|
boolean:->( d, format ){
|
92
92
|
procs = (format == :yml) ?
|
93
93
|
[ :nullstr, proc { !(0==d || ""==d || !d) } ] :
|
94
94
|
[ proc { !(0==d || ""==d || !d) } ]
|
95
|
-
self.translate_creater d, procs
|
95
|
+
self.translate_creater( d, procs )
|
96
96
|
},
|
97
97
|
date:->( d, format ){
|
98
98
|
procs = (format == :yml) ?
|
@@ -108,19 +108,19 @@ module Flextures
|
|
108
108
|
},
|
109
109
|
decimal:->( d, format ){
|
110
110
|
procs = (format == :yml) ?
|
111
|
-
[:nullstr, :blank2num, :bool2num, proc { |d| d.to_f } ] :
|
111
|
+
[:nullstr, :blank2num, :bool2num, proc { |d| d.to_f } ] :
|
112
112
|
[:null2blankstr, :bool2num, proc { |d| d.to_f } ]
|
113
113
|
self.translate_creater d, procs
|
114
114
|
},
|
115
115
|
float:->(d, format){
|
116
116
|
procs = (format == :yml) ?
|
117
|
-
[:nullstr, :blank2num, :bool2num, proc { |d| d.to_f } ] :
|
117
|
+
[:nullstr, :blank2num, :bool2num, proc { |d| d.to_f } ] :
|
118
118
|
[:null2blankstr, :bool2num, proc { |d| d.to_f } ]
|
119
119
|
self.translate_creater d, procs
|
120
120
|
},
|
121
121
|
integer:->( d, format ){
|
122
122
|
procs = (format == :yml) ?
|
123
|
-
[:nullstr, :blank2num, :bool2num, proc { |d| d.to_i } ] :
|
123
|
+
[:nullstr, :blank2num, :bool2num, proc { |d| d.to_i } ] :
|
124
124
|
[:null2blankstr, :bool2num, proc { |d| d.to_i } ]
|
125
125
|
self.translate_creater d, procs
|
126
126
|
},
|
@@ -169,7 +169,7 @@ module Flextures
|
|
169
169
|
# @params klass dump table Model
|
170
170
|
# @params [Hash] options dump options
|
171
171
|
# @return [Array] columns format information
|
172
|
-
def self.dump_attributes klass, options
|
172
|
+
def self.dump_attributes( klass, options )
|
173
173
|
columns = klass.columns.map { |column| { name: column.name, type: column.type } }
|
174
174
|
# option[:minus] colum is delete columns
|
175
175
|
columns.reject! { |column| options[:minus].include?(column[:name]) } if options[:minus]
|
@@ -185,7 +185,7 @@ module Flextures
|
|
185
185
|
# @params [Hash] options options
|
186
186
|
# @params [Symbol] type format type (:yml or :csv)
|
187
187
|
# @return [Proc] filter function
|
188
|
-
def self.create_filter attr_type, format, type
|
188
|
+
def self.create_filter( attr_type, format, type )
|
189
189
|
filter = DumpFilter[format[:table].to_s.to_sym] || {}
|
190
190
|
->(row) {
|
191
191
|
attr_type.map do |h|
|
@@ -198,7 +198,7 @@ module Flextures
|
|
198
198
|
# data dump to csv format
|
199
199
|
# @params [Hash] format file format data
|
200
200
|
# @params [Hash] options dump format options
|
201
|
-
def self.csv format
|
201
|
+
def self.csv( format )
|
202
202
|
klass = PARENT.create_model(format[:table])
|
203
203
|
attr_type = self.dump_attributes klass, format
|
204
204
|
filter = self.create_filter attr_type, format, :csv
|
@@ -206,7 +206,7 @@ module Flextures
|
|
206
206
|
end
|
207
207
|
|
208
208
|
# dump csv format data
|
209
|
-
def self.dump_csv klass, attr_type, values_filter, format
|
209
|
+
def self.dump_csv( klass, attr_type, values_filter, format )
|
210
210
|
# TODO: 拡張子は指定してもしなくても良いようにする
|
211
211
|
file_name = format[:file] || format[:table]
|
212
212
|
dir_name = File.join( Flextures::Config.fixture_dump_directory, format[:dir].to_s )
|
@@ -226,15 +226,15 @@ module Flextures
|
|
226
226
|
# data dump to yaml format
|
227
227
|
# @params [Hash] format file format data
|
228
228
|
# @params [Hash] options dump format options
|
229
|
-
def self.yml format
|
229
|
+
def self.yml( format )
|
230
230
|
klass = PARENT::create_model(format[:table])
|
231
231
|
attr_type = self.dump_attributes klass, format
|
232
232
|
filter = self.create_filter attr_type, format, :yml
|
233
|
-
self.dump_yml klass, filter, format
|
233
|
+
self.dump_yml( klass, filter, format )
|
234
234
|
end
|
235
235
|
|
236
236
|
# dump yml format data
|
237
|
-
def self.dump_yml klass, values_filter, format
|
237
|
+
def self.dump_yml( klass, values_filter, format )
|
238
238
|
# TODO: 拡張子は指定してもしなくても良いようにする
|
239
239
|
table_name = format[:table]
|
240
240
|
file_name = format[:file] || format[:table]
|
@@ -251,4 +251,3 @@ module Flextures
|
|
251
251
|
end
|
252
252
|
end
|
253
253
|
end
|
254
|
-
|
@@ -10,7 +10,7 @@ module Flextures
|
|
10
10
|
(self.methods - ::OpenStruct.new.methods)
|
11
11
|
.select{ |name| name.to_s.match(/\w+=/) }
|
12
12
|
.map{ |name| name.to_s.gsub(/=/,'').to_sym }
|
13
|
-
.
|
13
|
+
.reduce({}){ |k,h| h[k]=self.send(k); h }
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
@@ -21,14 +21,12 @@ module Flextures
|
|
21
21
|
# @return [Hash] tanslated Hash data
|
22
22
|
# example:
|
23
23
|
# hash = array.extend(Extensions::Array).to_hash(keys)
|
24
|
-
def to_hash keys
|
24
|
+
def to_hash( keys )
|
25
25
|
values = self
|
26
26
|
values = values[0..keys.size-1] if keys.size < values.size
|
27
27
|
values = values+[nil]*(keys.size-values.size) if keys.size > values.size
|
28
|
-
[keys,values].transpose.
|
28
|
+
[keys,values].transpose.reduce({}){ |h,pair| k,v=pair; h[k]=v; h }
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
33
|
-
|
34
|
-
|
@@ -10,11 +10,11 @@ module Flextures
|
|
10
10
|
# @params [String] table_name
|
11
11
|
# @params [Array] options arguments ActiveRecord Model
|
12
12
|
# @params [Proc] block FactoryFilter
|
13
|
-
def self.define table_name, *options, &block
|
13
|
+
def self.define( table_name, *options, &block )
|
14
14
|
h={ block: block }
|
15
15
|
options.each do |o|
|
16
16
|
begin
|
17
|
-
h[:model] = o if o.new.is_a?
|
17
|
+
h[:model] = o if o.new.is_a?(ActiveRecord::Base)
|
18
18
|
rescue
|
19
19
|
end
|
20
20
|
end
|
@@ -24,7 +24,7 @@ module Flextures
|
|
24
24
|
# get FactoryFilter
|
25
25
|
# @params [String|Symbol] table_name
|
26
26
|
# @return [Proc] filter block
|
27
|
-
def self.get table_name
|
27
|
+
def self.get( table_name )
|
28
28
|
f = FACTORIES[table_name.to_sym]
|
29
29
|
f && f[:block]
|
30
30
|
end
|
@@ -40,16 +40,15 @@ module Flextures
|
|
40
40
|
# @params options
|
41
41
|
# @params block
|
42
42
|
# @return Flextures::Factory
|
43
|
-
def self.define table_name, hash
|
43
|
+
def self.define( table_name, hash )
|
44
44
|
FACTORIES[table_name.to_sym]=hash
|
45
45
|
end
|
46
46
|
|
47
47
|
# get FactoryFilter
|
48
|
-
def self.get table_name
|
48
|
+
def self.get( table_name )
|
49
49
|
FACTORIES[table_name.to_sym]
|
50
50
|
end
|
51
51
|
def self.[](table_name); self.get(table_name); end
|
52
52
|
end
|
53
53
|
Factory = LoadFilter
|
54
54
|
end
|
55
|
-
|