flextures 1.0.2 → 1.0.3
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/VERSION +1 -1
- data/flextures.gemspec +1 -1
- data/lib/flextures/flextures.rb +15 -6
- metadata +10 -10
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.3
|
data/flextures.gemspec
CHANGED
data/lib/flextures/flextures.rb
CHANGED
@@ -17,7 +17,8 @@ module Flextures
|
|
17
17
|
klass.table_name=table_name
|
18
18
|
klass
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
|
+
# 設定ファイルが存在すればロード
|
21
22
|
def self.init_load
|
22
23
|
if defined?(Rails) and Rails.root
|
23
24
|
[
|
@@ -40,8 +41,8 @@ module Flextures
|
|
40
41
|
table_names = ActiveRecord::Base.connection.tables if ""==table_names
|
41
42
|
table_names = table_names.map{ |name| { table: name } }
|
42
43
|
table_names = table_names.map{ |option| option.merge dir: ENV["DIR"] } if ENV["DIR"]
|
43
|
-
table_names
|
44
|
-
table_names
|
44
|
+
table_names = ENV["FIXTURES"].split(',').map{ |name| { table: name } } if ENV["FIXTURES"]
|
45
|
+
table_names = ENV["F"].split(',').map{ |name| { table: name } } if ENV["F"]
|
45
46
|
# read mode だとcsvもyaml存在しないファイルは返さない
|
46
47
|
table_names.select! &exist if option[:mode] && option[:mode].to_sym == :read
|
47
48
|
table_names
|
@@ -98,7 +99,7 @@ module Flextures
|
|
98
99
|
attributes.map { |column|
|
99
100
|
v = trans row.send(column)
|
100
101
|
" #{column}: #{v}\n"
|
101
|
-
}
|
102
|
+
}.*
|
102
103
|
end
|
103
104
|
end
|
104
105
|
end
|
@@ -175,7 +176,11 @@ module Flextures
|
|
175
176
|
keys = csv.shift # keyの設定
|
176
177
|
warning "CSV", attributes, keys
|
177
178
|
csv.each do |values|
|
178
|
-
|
179
|
+
h = values.extend(Extensions::Array).to_hash(keys)
|
180
|
+
o = klass.new filter.call h
|
181
|
+
# idだけ特別扱いで保存
|
182
|
+
o.id = h["id"] if o.respond_to?(:id)
|
183
|
+
o.save
|
179
184
|
end
|
180
185
|
end
|
181
186
|
end
|
@@ -193,7 +198,9 @@ module Flextures
|
|
193
198
|
klass.delete_all
|
194
199
|
YAML.load(File.open(inpfile)).each do |k,h|
|
195
200
|
warning "YAML", attributes, h.keys
|
196
|
-
klass.
|
201
|
+
o = klass.new filter.call h
|
202
|
+
o.id = h["id"] if o.respond_to?(:id)
|
203
|
+
o.save
|
197
204
|
end
|
198
205
|
end
|
199
206
|
|
@@ -210,11 +217,13 @@ module Flextures
|
|
210
217
|
columns.each { |col| column_hash[col.name] = col }
|
211
218
|
# 自動補完が必要なはずのカラム
|
212
219
|
lack_columns = columns.select { |c| !c.null and !c.default }.map &:name
|
220
|
+
not_nullable_columns = columns.select { |c| !c.null }.map &:name
|
213
221
|
# ハッシュを受け取って、必要な値に加工してからハッシュで返すラムダを返す
|
214
222
|
return->(h){
|
215
223
|
h.select! { |k,v| column_hash[k] } # テーブルに存在しないキーが定義されているときは削除
|
216
224
|
# 値がnilでないなら型をDBで適切なものに変更
|
217
225
|
h.each{ |k,v| nil==v || h[k] = TRANSLATER[column_hash[k].type].call(v) }
|
226
|
+
not_nullable_columns.each{ |k| h[k]==nil && h[k] = TRANSLATER[column_hash[k].type].call(k) }
|
218
227
|
# FactoryFilterを動作させる
|
219
228
|
st = OpenStruct.new(h)
|
220
229
|
factory.call(st) if factory
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flextures
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -14,7 +14,7 @@ default_executable:
|
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: shoulda
|
17
|
-
requirement: &
|
17
|
+
requirement: &78827590 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *78827590
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: bundler
|
28
|
-
requirement: &
|
28
|
+
requirement: &78827320 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 1.0.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *78827320
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: jeweler
|
39
|
-
requirement: &
|
39
|
+
requirement: &78827080 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: 1.6.4
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *78827080
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: rcov
|
50
|
-
requirement: &
|
50
|
+
requirement: &78826840 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,7 +55,7 @@ dependencies:
|
|
55
55
|
version: '0'
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *78826840
|
59
59
|
description: load and dump fixtures
|
60
60
|
email: babanba.n@gmail.com
|
61
61
|
executables: []
|
@@ -101,7 +101,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
101
101
|
version: '0'
|
102
102
|
segments:
|
103
103
|
- 0
|
104
|
-
hash:
|
104
|
+
hash: 250641213
|
105
105
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|