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 CHANGED
@@ -1,2 +1,2 @@
1
- 1.9.5
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 = %q{flextures}
8
- s.version = "1.9.5"
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 = %q{2012-03-10}
13
- s.description = %q{load and dump fixtures}
14
- s.email = %q{babanba.n@gmail.com}
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 = %q{http://github.com/baban/flextures}
42
+ s.homepage = "http://github.com/baban/flextures"
43
43
  s.licenses = ["MIT"]
44
44
  s.require_paths = ["lib"]
45
- s.rubygems_version = %q{1.6.2}
46
- s.summary = %q{load and dump fixtures}
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
@@ -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 { |column|
135
- v = trans row.send(column)
136
- " #{column}: #{v}\n"
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
- READ_ONLYS=[]
6
+ @@read_onlys=[]
7
7
  @@configs={
8
8
  fixture_load_directory: "spec/fixtures/",
9
9
  fixture_dump_directory: "spec/fixtures/",
10
- init_all_tables: true, # 実行後に全テーブルの初期化を行うか?falseにするとそのぶん高速化できる
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] } unless READ_ONLYS.include?(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.5
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-10 00:00:00.000000000 +09:00
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: &90050990 !ruby/object:Gem::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: *90050990
24
+ version_requirements: *70149925736080
26
25
  - !ruby/object:Gem::Dependency
27
26
  name: jeweler
28
- requirement: &90050690 !ruby/object:Gem::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: *90050690
35
+ version_requirements: *70149925735560
37
36
  - !ruby/object:Gem::Dependency
38
37
  name: rcov
39
- requirement: &90050440 !ruby/object:Gem::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: *90050440
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: -67127249
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.6.2
100
+ rubygems_version: 1.8.10
103
101
  signing_key:
104
102
  specification_version: 3
105
103
  summary: load and dump fixtures