flextures 1.9.5 → 1.9.6
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 +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
|