flextures 0.9.1 → 0.9.4

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 +1 @@
1
- 0.9.1
1
+ 0.9.4
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{flextures}
8
- s.version = "0.9.1"
8
+ s.version = "0.9.4"
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{2011-11-06}
12
+ s.date = %q{2011-11-07}
13
13
  s.description = %q{load and dump fixtures}
14
14
  s.email = %q{babanba.n@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -1,44 +1,37 @@
1
1
  # encoding: utf-8
2
2
 
3
- require 'ostruct'
4
- require 'csv'
5
-
6
- require 'flextures/flextures_base_config'
7
3
  require 'flextures/flextures'
8
- require 'flextures/flextures_extension_modules'
9
- require 'flextures/flextures_factory'
10
- #require 'flextures/rspec_flextures_support'
11
4
 
12
5
  namespace :db do
13
6
  namespace :flextures do
14
- desc "Dump data to the test/fixtures/ directory. Use TABLE=table_name"
7
+ desc "Dump data to csv format"
15
8
  task :dump => :environment do
16
9
  Flextures::ARGS.parse.each { |fmt| Flextures::Dumper::csv(fmt) }
17
10
  end
18
11
 
19
- desc "Dump data to the test/fixtures/ directory. Use TABLE=table_name"
12
+ desc "Dump data to prefer csv format"
20
13
  task :csvdump => :environment do
21
- #Flextures::ARGS.parse.each { |fmt| Flextures::Dumper::csv(fmt) }
14
+ Flextures::ARGS.parse.each { |fmt| Flextures::Dumper::csv(fmt) }
22
15
  end
23
16
 
24
- desc "Dump data to the test/fixtures/ directory. Use TABLE=table_name"
17
+ desc "Dump data to yaml format"
25
18
  task :ymldump => :environment do
26
- #Flextures::ARGS.parse.each { |fmt| Flextures::Dumper::yml(fmt) }
19
+ Flextures::ARGS.parse.each { |fmt| Flextures::Dumper::yml(fmt) }
27
20
  end
28
21
 
29
- desc "Dump data to the test/fixtures/ directory. Use TABLE=table_name"
22
+ desc "load fixture data csv format"
30
23
  task :load => :environment do
31
- #Flextures::ARGS.parse.each { |fmt| Flextures::Loader::load(fmt) }
24
+ Flextures::ARGS.parse.each { |fmt| Flextures::Loader::load(fmt) }
32
25
  end
33
26
 
34
- desc "Dump data to the test/fixtures/ directory. Use TABLE=table_name"
27
+ desc "load fixture data only csv format files"
35
28
  task :csvload => :environment do
36
- #Flextures::ARGS.parse.each { |fmt| Flextures::Loader::csv(fmt) }
29
+ Flextures::ARGS.parse.each { |fmt| Flextures::Loader::csv(fmt) }
37
30
  end
38
31
 
39
- desc "Dump data to the test/fixtures/ directory. Use TABLE=table_name"
32
+ desc "load fixture files only yaml format"
40
33
  task :ymlload => :environment do
41
- #Flextures::ARGS::parse.each { |fmt| Flextures::Loader::yml(fmt) }
34
+ Flextures::ARGS::parse.each { |fmt| Flextures::Loader::yml(fmt) }
42
35
  end
43
36
  end
44
37
  end
@@ -6,9 +6,6 @@ require 'csv'
6
6
  require 'flextures/flextures_base_config'
7
7
  require 'flextures/flextures_extension_modules'
8
8
  require 'flextures/flextures_factory'
9
- require 'flextures/rspec_flextures_support.rb' if defined?(RSpec)
10
- load "#{Rails.root.to_path}/config/flextures.config.rb" if defined?(Rails) and Rails.root
11
- load "#{Rails.root.to_path}/config/flextures.factory.rb" if defined?(Rails) and Rails.root
12
9
 
13
10
  module Flextures
14
11
  LOAD_DIR = Config.fixture_load_directory
@@ -16,8 +13,11 @@ module Flextures
16
13
 
17
14
  # 引数解析
18
15
  module ARGS
19
- # 書き出し・読み込み すべきファイルとオプションを書きだす
16
+ # 書き出し 、読み込み すべきファイルとオプションを書きだす
20
17
  def self.parse option={}
18
+ load "#{Rails.root.to_path}/config/flextures.config.rb" if defined?(Rails) and Rails.root
19
+ load "#{Rails.root.to_path}/config/flextures.factory.rb" if defined?(Rails) and Rails.root
20
+
21
21
  table_names = ""
22
22
  table_names = ENV["TABLE"].split(",") if ENV["TABLE"]
23
23
  table_names = ENV["T"].split(",") if ENV["T"]
@@ -86,10 +86,10 @@ module Flextures
86
86
 
87
87
  File.open(outfile,"w") do |f|
88
88
  klass.all.each_with_index do |row,idx|
89
- f<< "#{table_name}_#{idx}n" +
89
+ f<< "#{table_name}_#{idx}:\n" +
90
90
  attributes.map { |column|
91
91
  v = trans row.send(column)
92
- " #{column}: #{v}¥n"
92
+ " #{column}: #{v}\n"
93
93
  }.join
94
94
  end
95
95
  end
@@ -113,6 +113,7 @@ module Flextures
113
113
  time:->{ DateTime.now },
114
114
  timestamp:->{ DateTime.now },
115
115
  }
116
+
116
117
  # 型の変換を行う
117
118
  TRANSLATER = {
118
119
  binary:->(d){ d.to_i },
@@ -159,7 +160,6 @@ module Flextures
159
160
  klass = PARENT::create_model table_name
160
161
  attributes = klass.columns.map &:name
161
162
  filter = create_filter klass.columns, Factory[table_name]
162
- #filter2 = create_filter2 klass.columns, Factory[table_name]
163
163
  klass.delete_all
164
164
  CSV.open( inpfile ) do |csv|
165
165
  keys = csv.shift # keyの設定
@@ -189,8 +189,8 @@ module Flextures
189
189
 
190
190
  # 欠けたカラムを検知してメッセージを出しておく
191
191
  def self.warning format, attributes, keys
192
- (attributes-keys).each { |name| print "Warning: #{format} colum is missing! [#{name}]¥n" }
193
- (keys-attributes).each { |name| print "Warning: #{format} colum is left over! [#{name}]¥n" }
192
+ (attributes-keys).each { |name| print "Warning: #{format} colum is missing! [#{name}]\n" }
193
+ (keys-attributes).each { |name| print "Warning: #{format} colum is left over! [#{name}]\n" }
194
194
  end
195
195
 
196
196
  # フィクスチャから取り出した値を、加工して欲しいデータにするフィルタを作成して返す
@@ -200,7 +200,7 @@ module Flextures
200
200
  columns.each { |col| column_hash[col.name] = col }
201
201
  # 自動補完が必要なはずのカラム
202
202
  lack_columns = columns.select { |c| !c.null and !c.default }.map &:name
203
- # ハッシュを受け取って、必要な値に加工してからハッシュで返す
203
+ # ハッシュを受け取って、必要な値に加工してからハッシュで返すラムダを返す
204
204
  return->(h){
205
205
  h.select! { |k,v| column_hash[k] } # テーブルに存在しないキーが定義されているときは削除
206
206
  # 値がnilでないなら型をDBで適切なものに変更
@@ -1,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'ostruct'
4
- require 'csv'
5
4
 
6
5
  module Flextures
7
6
  # Plug-in 内部拡張
@@ -9,11 +8,11 @@ module Flextures
9
8
  # hashに変化させる
10
9
  def to_hash
11
10
  h={}
12
- (self.methods - OpenStruct.new.methods)
13
- .select{ |name| name.match(w+=/) }
11
+ (self.methods - ::OpenStruct.new.methods)
12
+ .select{ |name| name.to_s.match(/\w+=/) }
14
13
  .map{ |name| name.to_s.gsub(/=/,'').to_sym }
15
14
  .each{ |k| h[k]=self.send(k) }
16
- h
15
+ h
17
16
  end
18
17
  end
19
18
 
@@ -1,13 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
- require 'ostruct'
4
- require 'csv'
5
-
6
- require 'flextures/flextures_base_config'
7
- require 'flextures/flextures_extension_modules'
8
- require 'flextures/flextures'
9
- require 'flextures/flextures_factory'
10
-
11
3
  module Flextures
12
4
  # ロードするデータを必要に応じて加工する
13
5
  class 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: 0.9.1
4
+ version: 0.9.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-06 00:00:00.000000000 +09:00
12
+ date: 2011-11-07 00:00:00.000000000 +09:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: shoulda
17
- requirement: &87123700 !ruby/object:Gem::Requirement
17
+ requirement: &80353760 !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: *87123700
25
+ version_requirements: *80353760
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: bundler
28
- requirement: &87123460 !ruby/object:Gem::Requirement
28
+ requirement: &80353520 !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: *87123460
36
+ version_requirements: *80353520
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: jeweler
39
- requirement: &87123220 !ruby/object:Gem::Requirement
39
+ requirement: &80353280 !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: *87123220
47
+ version_requirements: *80353280
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rcov
50
- requirement: &87122980 !ruby/object:Gem::Requirement
50
+ requirement: &80353040 !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: *87122980
58
+ version_requirements: *80353040
59
59
  description: load and dump fixtures
60
60
  email: babanba.n@gmail.com
61
61
  executables: []
@@ -100,7 +100,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
100
100
  version: '0'
101
101
  segments:
102
102
  - 0
103
- hash: -599778417
103
+ hash: -410806225
104
104
  required_rubygems_version: !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements: