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 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