flextures 1.9.5 → 1.9.6
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/flextures.gemspec +8 -8
- data/lib/flextures/flextures.rb +28 -4
- data/lib/flextures/flextures_base_config.rb +4 -4
- metadata +10 -12
data/VERSION
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
1.9.
|
1
|
+
1.9.6
|
2
2
|
|
data/flextures.gemspec
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "1.9.
|
7
|
+
s.name = "flextures"
|
8
|
+
s.version = "1.9.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["baban"]
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
12
|
+
s.date = "2012-03-26"
|
13
|
+
s.description = "load and dump fixtures"
|
14
|
+
s.email = "babanba.n@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE.txt",
|
17
17
|
"README.ja.rdoc",
|
@@ -39,11 +39,11 @@ Gem::Specification.new do |s|
|
|
39
39
|
"lib/flextures/rspec_flextures_support.rb",
|
40
40
|
"lib/flextures/testunit_flextures_support.rb"
|
41
41
|
]
|
42
|
-
s.homepage =
|
42
|
+
s.homepage = "http://github.com/baban/flextures"
|
43
43
|
s.licenses = ["MIT"]
|
44
44
|
s.require_paths = ["lib"]
|
45
|
-
s.rubygems_version =
|
46
|
-
s.summary =
|
45
|
+
s.rubygems_version = "1.8.10"
|
46
|
+
s.summary = "load and dump fixtures"
|
47
47
|
|
48
48
|
if s.respond_to? :specification_version then
|
49
49
|
s.specification_version = 3
|
data/lib/flextures/flextures.rb
CHANGED
@@ -90,11 +90,25 @@ module Flextures
|
|
90
90
|
return->(name){ File.exists?("#{LOAD_DIR}#{name}.csv") or File.exists?("#{LOAD_DIR}#{name}.yml") }
|
91
91
|
end
|
92
92
|
end
|
93
|
-
|
93
|
+
|
94
94
|
# データを吐き出す処理をまとめる
|
95
95
|
module Dumper
|
96
96
|
PARENT = Flextures
|
97
97
|
|
98
|
+
TRANSLATER = {
|
99
|
+
binary:->(d){ d.to_i },
|
100
|
+
boolean:->(d){ (0==d || ""==d || !d) ? false : true },
|
101
|
+
date:->(d){ Date.parse(d.to_s) },
|
102
|
+
datetime:->(d){ DateTime.parse(d.to_s) },
|
103
|
+
decimal:->(d){ d.to_i },
|
104
|
+
float:->(d){ d.to_f },
|
105
|
+
integer:->(d){ d.to_i },
|
106
|
+
string:->(d){ d.to_s.gsub(/\t/,'') },
|
107
|
+
text:->(d){ d.to_s },
|
108
|
+
time:->(d){ DateTime.parse(d.to_s) },
|
109
|
+
timestamp:->(d){ DateTime.parse(d.to_s) },
|
110
|
+
}
|
111
|
+
|
98
112
|
# 適切な型に変換
|
99
113
|
def self.trans v
|
100
114
|
case v
|
@@ -128,12 +142,22 @@ module Flextures
|
|
128
142
|
table_name = format[:table]
|
129
143
|
klass = PARENT::create_model(table_name)
|
130
144
|
attributes = klass.columns.map { |colum| colum.name }
|
145
|
+
|
146
|
+
columns = klass.columns
|
147
|
+
# テーブルからカラム情報を取り出し
|
148
|
+
column_hash = {}
|
149
|
+
columns.each { |col| column_hash[col.name] = col }
|
150
|
+
# 自動補完が必要なはずのカラム
|
151
|
+
lack_columns = columns.select { |c| !c.null and !c.default }.map{ |o| o.name.to_sym }
|
152
|
+
not_nullable_columns = columns.select { |c| !c.null }.map &:name
|
153
|
+
|
131
154
|
File.open(outfile,"w") do |f|
|
132
155
|
klass.all.each_with_index do |row,idx|
|
133
156
|
f<< "#{table_name}_#{idx}:\n" +
|
134
|
-
attributes.map { |
|
135
|
-
v = trans row.send(
|
136
|
-
"
|
157
|
+
attributes.map { |col|
|
158
|
+
v = trans row.send(col)
|
159
|
+
v = "|-\n " + v.gsub(/\n/,%Q{\n }) if v.kind_of?(String) # Stringだと改行が入るので特殊処理
|
160
|
+
" #{col}: #{v}\n"
|
137
161
|
}.join
|
138
162
|
end
|
139
163
|
end
|
@@ -3,17 +3,17 @@
|
|
3
3
|
# 基本設定を記述する
|
4
4
|
module Flextures
|
5
5
|
module Config
|
6
|
-
|
6
|
+
@@read_onlys=[]
|
7
7
|
@@configs={
|
8
8
|
fixture_load_directory: "spec/fixtures/",
|
9
9
|
fixture_dump_directory: "spec/fixtures/",
|
10
|
-
init_all_tables:
|
10
|
+
init_all_tables: false, # 実行後に全テーブルの初期化を行うか?falseにするとそのぶん高速化できる
|
11
11
|
}
|
12
12
|
# ハッシュをsetter、getterに変換
|
13
13
|
class<< self
|
14
14
|
@@configs.each do |setting_key, setting_value|
|
15
|
-
define_method(setting_key){ @@configs[setting_key] }
|
16
|
-
define_method("#{setting_key}="){ |arg| @@configs[setting_key]=arg }
|
15
|
+
define_method(setting_key){ @@configs[setting_key] }
|
16
|
+
define_method("#{setting_key}="){ |arg| @@configs[setting_key]=arg } unless @@read_onlys.include?(setting_key)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
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.9.
|
4
|
+
version: 1.9.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
13
|
-
default_executable:
|
12
|
+
date: 2012-03-26 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: bundler
|
17
|
-
requirement: &
|
16
|
+
requirement: &70149925736080 !ruby/object:Gem::Requirement
|
18
17
|
none: false
|
19
18
|
requirements:
|
20
19
|
- - ~>
|
@@ -22,10 +21,10 @@ dependencies:
|
|
22
21
|
version: 1.0.0
|
23
22
|
type: :development
|
24
23
|
prerelease: false
|
25
|
-
version_requirements: *
|
24
|
+
version_requirements: *70149925736080
|
26
25
|
- !ruby/object:Gem::Dependency
|
27
26
|
name: jeweler
|
28
|
-
requirement: &
|
27
|
+
requirement: &70149925735560 !ruby/object:Gem::Requirement
|
29
28
|
none: false
|
30
29
|
requirements:
|
31
30
|
- - ~>
|
@@ -33,10 +32,10 @@ dependencies:
|
|
33
32
|
version: 1.6.4
|
34
33
|
type: :development
|
35
34
|
prerelease: false
|
36
|
-
version_requirements: *
|
35
|
+
version_requirements: *70149925735560
|
37
36
|
- !ruby/object:Gem::Dependency
|
38
37
|
name: rcov
|
39
|
-
requirement: &
|
38
|
+
requirement: &70149925735040 !ruby/object:Gem::Requirement
|
40
39
|
none: false
|
41
40
|
requirements:
|
42
41
|
- - ! '>='
|
@@ -44,7 +43,7 @@ dependencies:
|
|
44
43
|
version: '0'
|
45
44
|
type: :development
|
46
45
|
prerelease: false
|
47
|
-
version_requirements: *
|
46
|
+
version_requirements: *70149925735040
|
48
47
|
description: load and dump fixtures
|
49
48
|
email: babanba.n@gmail.com
|
50
49
|
executables: []
|
@@ -74,7 +73,6 @@ files:
|
|
74
73
|
- lib/flextures/flextures_railtie.rb
|
75
74
|
- lib/flextures/rspec_flextures_support.rb
|
76
75
|
- lib/flextures/testunit_flextures_support.rb
|
77
|
-
has_rdoc: true
|
78
76
|
homepage: http://github.com/baban/flextures
|
79
77
|
licenses:
|
80
78
|
- MIT
|
@@ -90,7 +88,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
90
88
|
version: '0'
|
91
89
|
segments:
|
92
90
|
- 0
|
93
|
-
hash: -
|
91
|
+
hash: -3781963880022992920
|
94
92
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
93
|
none: false
|
96
94
|
requirements:
|
@@ -99,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
99
97
|
version: '0'
|
100
98
|
requirements: []
|
101
99
|
rubyforge_project:
|
102
|
-
rubygems_version: 1.
|
100
|
+
rubygems_version: 1.8.10
|
103
101
|
signing_key:
|
104
102
|
specification_version: 3
|
105
103
|
summary: load and dump fixtures
|