flextures 2.1.0 → 3.0.0
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/Gemfile +1 -1
- data/Gemfile.lock +1 -1
- data/README.ja.rdoc +33 -22
- data/README.rdoc +29 -22
- data/VERSION +1 -1
- data/flextures.gemspec +7 -6
- data/lib/flextures/flextures.rake +28 -4
- data/lib/flextures/flextures.rb +33 -28
- data/lib/flextures/flextures_base_config.rb +17 -6
- data/lib/flextures/flextures_command.rb +25 -27
- data/lib/flextures/flextures_dumper.rb +82 -55
- data/lib/flextures/flextures_extension_modules.rb +12 -8
- data/lib/flextures/flextures_factory.rb +13 -11
- data/lib/flextures/flextures_loader.rb +208 -132
- data/lib/flextures/rspec_flextures_support.rb +13 -7
- data/lib/flextures/testunit_flextures_support.rb +30 -4
- data/lib/flextures/version.rb +1 -1
- data/test/unit/test_flextures.rb +1 -1
- data/test/unit/test_flextures_args.rb +70 -17
- data/test/unit/test_flextures_dumper.rb +48 -37
- data/test/unit/test_flextures_extention_modules.rb +37 -0
- data/test/unit/test_flextures_hooks.rb +66 -17
- data/test/unit/test_flextures_loader.rb +89 -14
- data/test/unit/test_simple.rb +1 -1
- metadata +12 -21
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
data/README.ja.rdoc
CHANGED
@@ -15,8 +15,8 @@ Rails標準のfixtureの不満点を解消するために作成しました
|
|
15
15
|
通常のfixtureとの主な違いは次の4点です
|
16
16
|
|
17
17
|
1. yamlよりもcsvを優先する
|
18
|
-
2. migration
|
19
|
-
3.
|
18
|
+
2. migrationでテーブル構成が変わっても、カラムの変更点を無視、補完してロードを行う
|
19
|
+
3. テーブル名とfixtureのファイル名を一致させないでも、自由なロード&ダンプが出来るオプション
|
20
20
|
4. FactoyGirl風の読み込みフィルタで、Fixtureのデータを加工しながら読み込む事が出来る
|
21
21
|
|
22
22
|
== インストール方法
|
@@ -26,14 +26,18 @@ gem化されているので、bundlerで次のように記述して、普通にb
|
|
26
26
|
|
27
27
|
gem "flextures"
|
28
28
|
|
29
|
-
|
29
|
+
現在flexturesは機能を追加したバージョンアップをした3系への移行作業途中で
|
30
|
+
ソースコード、マニュアルは3系のものになっています
|
31
|
+
最新版のソースコードはgithub上に挙げられているのでbundlerにguthubのリポジトリのURLを追加して下さい
|
32
|
+
|
33
|
+
ちなみに開発環境はruby1.9以上のバージョン、rails3以上、もしくはPadrinoを想定しています
|
30
34
|
|
31
35
|
== 使い方
|
32
36
|
|
33
37
|
=== rakeコマンド
|
34
38
|
|
35
39
|
次のコマンドで spec/fixtures/ 以下にあるfixtureのロード&ダンプを行います
|
36
|
-
(
|
40
|
+
(読み込む基本のディレクトリは設定ファイルで変更可能)
|
37
41
|
|
38
42
|
rake db:flextures:load
|
39
43
|
rake db:flextures:dump
|
@@ -49,31 +53,31 @@ Usersモデルのfixture(users.csvか users.yml)をロードする
|
|
49
53
|
|
50
54
|
rake db:flextures:load MODEL=User
|
51
55
|
|
52
|
-
|
56
|
+
その他オプションは以下の通りです:
|
53
57
|
|
54
58
|
TABLE : テーブル名を指定してロード。テーブル名はカンマ切りで複数指定が可能
|
55
59
|
MODEL : モデル名を指定してロード。モデル名はカンマ区切りで複数指定が可能
|
56
60
|
DIR : フィクスチャをロード&ダンプするディレクトリを指定する
|
57
|
-
|
58
|
-
|
61
|
+
FILE : loadまたはdumpするファイル名を直接指定(Userモデルのusers.csv以外を指定)
|
62
|
+
FORMAT:ダンプ、またはロードするデータの種類を指定できる(csvかyml)
|
63
|
+
OPTION:その他の細かい読み込みオプションはここで指定出来ます
|
59
64
|
T : TABLEのエイリアス
|
60
|
-
M : モデル名指定のエイリアス
|
61
65
|
D : ディレクトリ指定のエイリアス
|
62
66
|
F : ファイル名指定のエイリアス
|
63
67
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
rake db:flextures:
|
68
|
-
rake db:flextures:ymlload
|
69
|
-
rake db:flextures:csvdump
|
70
|
-
rake db:flextures:ymldump
|
68
|
+
migration等でテーブルの構成が変わった時には
|
69
|
+
generateコマンドを実行すると、テーブル情報のloadとdumpをセットで行なってくれるので便利です
|
70
|
+
|
71
|
+
rake db:flextures:generate T=users
|
71
72
|
|
72
|
-
|
73
|
+
さらに詳しい説明に関しては {Wiki:Rakeコマンドラインオプション}[https://github.com/baban/flextures/wiki/Rake%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3]を参照して下さい
|
73
74
|
|
74
|
-
===
|
75
|
+
=== Unit test flexture support
|
75
76
|
|
76
|
-
|
77
|
+
ユニットテスト中でデータの読み込みが行いたくなったときのために
|
78
|
+
fixtureのロード機能を使えます
|
79
|
+
|
80
|
+
次の例はRSpecからの読み込みですが
|
77
81
|
基本的な機能は、通常のfixturesと同じですので、fixtures と同じ感覚で使用して下さい
|
78
82
|
|
79
83
|
describe ItemShopController do
|
@@ -86,11 +90,15 @@ RSpec中でfixtures関数の代わりにfixtureのロード機能を使えます
|
|
86
90
|
describe ItemShopController do
|
87
91
|
flextures :items, :users => :users_for_itmshop # users_for_itemshop.csv をロードする
|
88
92
|
|
89
|
-
|
93
|
+
その他現在はShouldからの呼び出しや様々なオプションを載せていますが
|
94
|
+
さらに詳しい使い方に関しては {Wiki:Unit Test Supportの説明}[https://github.com/baban/flextures/wiki/Unit-test-support%E3%81%AE%E8%AA%AC%E6%98%8E] を参照して下さい
|
95
|
+
|
96
|
+
=== Flextures load filter (and dump filter)
|
90
97
|
|
91
98
|
==== load filer
|
92
99
|
|
93
100
|
Railsのプロジェクトに config/flextures.factory.rb というファイルを作成して、そこにフィルタを記述することによって
|
101
|
+
(Padrinoでも設置場所は同じです)
|
94
102
|
フィクスチャの読み込み時に、値を加工して読み込む事が可能になっています
|
95
103
|
例えば、次の様に記述するとusersテーブルのlast_login_dateの値を、常に現在の時間として設定できます
|
96
104
|
|
@@ -98,8 +106,8 @@ Railsのプロジェクトに config/flextures.factory.rb というファイル
|
|
98
106
|
f.last_login_date = DateTime.now
|
99
107
|
end
|
100
108
|
|
101
|
-
テーブルにdefault
|
102
|
-
|
109
|
+
テーブルにdefaultの値を設定していなくても
|
110
|
+
カラムのデータを適当に補完する機能があるので
|
103
111
|
大量のデータを生成したい時は次のように{faker}[https://github.com/stympy/faker]等と組み合わせて
|
104
112
|
必要な分だけ生成をさせると、今までより若干捗るかもしれません
|
105
113
|
|
@@ -121,6 +129,9 @@ Railsのプロジェクトに config/flextures.factory.rb というファイル
|
|
121
129
|
:encrypted_password => lambda { |v| Base64.encode64(v) }
|
122
130
|
}
|
123
131
|
|
132
|
+
|
133
|
+
さらに細かい使い方に関しては {Wiki:FactoryFilterについて}[https://github.com/baban/flextures/wiki/Factoryfilter%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6] を参照して下さい
|
134
|
+
|
124
135
|
=== 設定ファイル
|
125
136
|
|
126
137
|
config/flextures.config.rb で設定ファイルを作成すると、データをロード&ダンプするディレクトリなどの設定を変更できます
|
@@ -132,5 +143,5 @@ config/flextures.config.rb で設定ファイルを作成すると、データ
|
|
132
143
|
Config.fixture_dump_directory = "test/fixtures/"
|
133
144
|
end
|
134
145
|
|
135
|
-
|
146
|
+
その他の情報は {Wiki:設定ファイルの書式について}[https://github.com/baban/flextures/wiki/%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E6%9B%B8%E5%BC%8F%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6] を参照して下さい
|
136
147
|
|
data/README.rdoc
CHANGED
@@ -13,10 +13,10 @@ Each commands load or dump fixtures.
|
|
13
13
|
|
14
14
|
Major different point is four.
|
15
15
|
|
16
|
-
1. Fixture file
|
17
|
-
2.
|
18
|
-
3. Fixture file name can change if file name is not equal table name.
|
19
|
-
4. Fixture data translate to use filter like factory girl.
|
16
|
+
1. Fixture file prefered CSV to YAML.
|
17
|
+
2. loading don't stop, if table columns are not match fixture file's column
|
18
|
+
3. Fixture file name can change, if file name is not equal table name.
|
19
|
+
4. Fixture data can translate to use filter, like factory girl.
|
20
20
|
|
21
21
|
== How to install
|
22
22
|
|
@@ -26,7 +26,15 @@ Please use bundler.
|
|
26
26
|
|
27
27
|
gem "flextures"
|
28
28
|
|
29
|
-
|
29
|
+
curent flextures is developping version3.0
|
30
|
+
|
31
|
+
This document and sourcecode and documents(readme.rdoc,wiki) write about version flextures 3.0 (current released version is 2.1.0)
|
32
|
+
if you want to use flextures3.0
|
33
|
+
your Gemfile should set option github url
|
34
|
+
|
35
|
+
gem "flextures", git:"https://github.com/baban/flextures"
|
36
|
+
|
37
|
+
(Development emnvoriment must be ruby1.9 higer and rails3 higher)
|
30
38
|
|
31
39
|
== How to use
|
32
40
|
|
@@ -44,34 +52,28 @@ For example, this option set dump file name.
|
|
44
52
|
|
45
53
|
rake db:flextures:dump TABLE=users
|
46
54
|
|
47
|
-
If you use this option load command.
|
48
|
-
Option set load file name.
|
49
|
-
(loading "users.csv" or "users.yml")
|
50
|
-
|
51
|
-
rake db:flextures:load MODEL=User
|
52
|
-
|
53
55
|
Other options...
|
54
56
|
|
55
57
|
TABLE : set table name
|
56
58
|
MODEL : set model name
|
57
59
|
DIR : set directory name
|
58
|
-
FIXTURES : set fixture file name
|
59
60
|
FILE : set fixture file name
|
61
|
+
FORMAT:change dump file format(csv or yml)
|
62
|
+
OPTION:other options
|
60
63
|
T : alias TABLE option
|
61
|
-
M : alias MODEL option
|
62
64
|
D : alias DIR option
|
63
65
|
F : alias FIXTURES option
|
64
66
|
|
65
|
-
if you
|
66
|
-
|
67
|
-
rake db:flextures:csvload
|
68
|
-
rake db:flextures:ymlload
|
69
|
-
rake db:flextures:csvdump
|
70
|
-
rake db:flextures:ymldump
|
67
|
+
if you change table colum information
|
68
|
+
next comannd regenerate (load fixture and dump) fixtures
|
71
69
|
|
72
|
-
|
70
|
+
rake db:flextures:generate T=users
|
73
71
|
|
74
|
-
|
72
|
+
Other information please see {wiki}[https://github.com/baban/flextures/wiki/Rake-command-option] ...
|
73
|
+
|
74
|
+
=== Unit test flexture support
|
75
|
+
|
76
|
+
Fixture load function implemented for Unittes Tools (for example, RSpec, Shoulda).
|
75
77
|
|
76
78
|
describe ItemShopController do
|
77
79
|
flextures :users, :items
|
@@ -84,6 +86,9 @@ Flextures function can change load file name.
|
|
84
86
|
describe ItemShopController do
|
85
87
|
flextures :items, :users => :users_for_itmshop # load "users_for_itemshop.csv"
|
86
88
|
|
89
|
+
Other option information
|
90
|
+
Please see {wiki}[https://github.com/baban/flextures/wiki/Unittestsupport] ...
|
91
|
+
|
87
92
|
=== Flextures load & dump filter
|
88
93
|
|
89
94
|
==== load filter
|
@@ -118,6 +123,8 @@ dump filter has hash argumtne, it is formatted colum name key and convert method
|
|
118
123
|
:encrypted_password => lambda { |v| Base64.encode64(v) }
|
119
124
|
}
|
120
125
|
|
126
|
+
Other options please see {wiki}[https://github.com/baban/flextures/wiki/Factoryfilter] ...
|
127
|
+
|
121
128
|
=== Configuration file
|
122
129
|
|
123
130
|
Configuration file can change load and dump directory
|
@@ -130,5 +137,5 @@ Configuration file can change load and dump directory
|
|
130
137
|
Config.fixture_dump_directory = "test/fixtures/"
|
131
138
|
end
|
132
139
|
|
133
|
-
|
140
|
+
Other options please see {wiki}[https://github.com/baban/flextures/wiki/Configuration-file] ...
|
134
141
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
3.0.0
|
data/flextures.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "flextures"
|
8
|
-
s.version = "
|
8
|
+
s.version = "3.0.0"
|
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 = "2013-
|
12
|
+
s.date = "2013-06-24"
|
13
13
|
s.description = "load and dump fixtures"
|
14
14
|
s.email = "babanba.n@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -46,6 +46,7 @@ Gem::Specification.new do |s|
|
|
46
46
|
"test/unit/test_flextures.rb",
|
47
47
|
"test/unit/test_flextures_args.rb",
|
48
48
|
"test/unit/test_flextures_dumper.rb",
|
49
|
+
"test/unit/test_flextures_extention_modules.rb",
|
49
50
|
"test/unit/test_flextures_hooks.rb",
|
50
51
|
"test/unit/test_flextures_loader.rb",
|
51
52
|
"test/unit/test_simple.rb"
|
@@ -53,21 +54,21 @@ Gem::Specification.new do |s|
|
|
53
54
|
s.homepage = "http://github.com/baban/flextures"
|
54
55
|
s.licenses = ["MIT"]
|
55
56
|
s.require_paths = ["lib"]
|
56
|
-
s.rubygems_version = "1.8.
|
57
|
+
s.rubygems_version = "1.8.10"
|
57
58
|
s.summary = "load and dump fixtures"
|
58
59
|
|
59
60
|
if s.respond_to? :specification_version then
|
60
61
|
s.specification_version = 3
|
61
62
|
|
62
63
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
63
|
-
s.add_development_dependency(%q<bundler>, ["= 1.
|
64
|
+
s.add_development_dependency(%q<bundler>, ["= 1.3.5"])
|
64
65
|
s.add_development_dependency(%q<jeweler>, ["= 1.8.3"])
|
65
66
|
else
|
66
|
-
s.add_dependency(%q<bundler>, ["= 1.
|
67
|
+
s.add_dependency(%q<bundler>, ["= 1.3.5"])
|
67
68
|
s.add_dependency(%q<jeweler>, ["= 1.8.3"])
|
68
69
|
end
|
69
70
|
else
|
70
|
-
s.add_dependency(%q<bundler>, ["= 1.
|
71
|
+
s.add_dependency(%q<bundler>, ["= 1.3.5"])
|
71
72
|
s.add_dependency(%q<jeweler>, ["= 1.8.3"])
|
72
73
|
end
|
73
74
|
end
|
@@ -11,12 +11,21 @@ namespace :db do
|
|
11
11
|
|
12
12
|
desc "Dump data to prefer csv format"
|
13
13
|
task :csvdump => :environment do
|
14
|
-
|
14
|
+
puts "This command is deprecated"
|
15
|
+
# TODO: deprecated message
|
16
|
+
# please use 'FOAMRT=csv' option
|
17
|
+
ENV["FORMAT"]="csv"
|
18
|
+
Flextures::Rake::Command::dump
|
15
19
|
end
|
16
20
|
|
17
21
|
desc "Dump data to yaml format"
|
18
22
|
task :ymldump => :environment do
|
19
|
-
|
23
|
+
puts "This command is deprecated"
|
24
|
+
puts "please use 'rake db:flextures:dump FORMAT='yml''"
|
25
|
+
# TODO: deprecated message
|
26
|
+
# please use 'FOAMRT=yml' option
|
27
|
+
ENV["FORMAT"]="yml"
|
28
|
+
Flextures::Rake::Command::dump
|
20
29
|
end
|
21
30
|
|
22
31
|
desc "load fixture data csv format"
|
@@ -26,12 +35,27 @@ namespace :db do
|
|
26
35
|
|
27
36
|
desc "load fixture data only csv format files"
|
28
37
|
task :csvload => :environment do
|
29
|
-
|
38
|
+
puts "This command is deprecated"
|
39
|
+
puts "please use 'rake db:flextures:load FORMAT='csv''"
|
40
|
+
# TODO: deprecated message
|
41
|
+
# please use 'FOAMRT=csv' option
|
42
|
+
ENV["FORMAT"]="csv"
|
43
|
+
Flextures::Rake::Command::load
|
30
44
|
end
|
31
45
|
|
32
46
|
desc "load fixture files only yaml format"
|
33
47
|
task :ymlload => :environment do
|
34
|
-
|
48
|
+
# TODO: deprecated message
|
49
|
+
# please use 'FOAMRT=yml' option
|
50
|
+
ENV["FORMAT"]="yml"
|
51
|
+
puts "This command is deprecated"
|
52
|
+
puts "please use 'rake db:flextures:load FORMAT='yml''"
|
53
|
+
Flextures::Rake::Command::load
|
35
54
|
end
|
55
|
+
|
56
|
+
desc "load and dump file (replace) new data file"
|
57
|
+
task :generate => :environment do
|
58
|
+
Flextures::Rake::Command::generate
|
59
|
+
end
|
36
60
|
end
|
37
61
|
end
|
data/lib/flextures/flextures.rb
CHANGED
@@ -8,17 +8,16 @@ require "flextures/flextures_extension_modules"
|
|
8
8
|
require "flextures/flextures_factory"
|
9
9
|
|
10
10
|
module Flextures
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
# テーブルモデルの作成
|
11
|
+
# ActiveRecord Model is created that guess by table_name
|
12
|
+
# @params [String|Symbol] table_name
|
13
|
+
# @params [ActiveRecord::Base] model class
|
15
14
|
def self.create_model table_name
|
16
|
-
#
|
15
|
+
# when Model is defined in FactoryFilter
|
17
16
|
a = ->{
|
18
17
|
f = Factory::FACTORIES[table_name.to_sym]
|
19
18
|
f && f[:model]
|
20
19
|
}
|
21
|
-
#
|
20
|
+
# when program can guess Model name by table_name
|
22
21
|
b = ->{
|
23
22
|
begin
|
24
23
|
table_name.singularize.camelize.constantize
|
@@ -26,14 +25,14 @@ module Flextures
|
|
26
25
|
nil
|
27
26
|
end
|
28
27
|
}
|
29
|
-
#
|
28
|
+
# when cannot guess Model name
|
30
29
|
c = ->{
|
31
30
|
Class.new(ActiveRecord::Base){ |o| o.table_name=table_name }
|
32
31
|
}
|
33
32
|
a.call || b.call || c.call
|
34
33
|
end
|
35
34
|
|
36
|
-
#
|
35
|
+
# load configuration file, if file is exist
|
37
36
|
def self.init_load
|
38
37
|
if defined?(Rails) and Rails.root
|
39
38
|
[
|
@@ -43,20 +42,18 @@ module Flextures
|
|
43
42
|
end
|
44
43
|
end
|
45
44
|
|
46
|
-
#
|
45
|
+
# @return [Array] flextures useable table names
|
47
46
|
def self.deletable_tables
|
48
47
|
tables = ActiveRecord::Base.connection.tables
|
49
|
-
Flextures::Config.ignore_tables.each
|
50
|
-
tables.delete name
|
51
|
-
end
|
48
|
+
Flextures::Config.ignore_tables.each { |name| tables.delete name }
|
52
49
|
tables
|
53
50
|
end
|
54
51
|
|
55
|
-
#
|
52
|
+
# initialize table data
|
56
53
|
def self.init_tables
|
57
54
|
tables = Flextures::deletable_tables
|
58
55
|
tables.each do |name|
|
59
|
-
#
|
56
|
+
# if 'name' variable is 'database view', raise error
|
60
57
|
begin
|
61
58
|
Class.new(ActiveRecord::Base){ |o| o.table_name= name }.delete_all
|
62
59
|
rescue => e
|
@@ -64,41 +61,40 @@ module Flextures
|
|
64
61
|
end
|
65
62
|
end
|
66
63
|
|
67
|
-
# テーブル情報の初期化
|
68
64
|
def self.delete_tables *tables
|
69
65
|
tables.each do |name|
|
70
|
-
#
|
66
|
+
# if 'name' variable is 'database view', raise error
|
71
67
|
begin
|
72
68
|
Class.new(ActiveRecord::Base){ |o| o.table_name= name }.delete_all
|
73
|
-
rescue => e
|
69
|
+
rescue StandaraError => e
|
74
70
|
end
|
75
71
|
end
|
76
72
|
end
|
77
73
|
|
78
|
-
#
|
79
|
-
#
|
74
|
+
# It is debug method to use like 'tab' method
|
75
|
+
# @params [Proc] dumper write dump information
|
80
76
|
def self.table_tap &dumper
|
81
77
|
tables = Flextures::deletable_tables
|
82
78
|
tables.each do |name|
|
83
|
-
#
|
79
|
+
# if 'name' variable is 'database view', raise error
|
84
80
|
begin
|
85
81
|
klass = Class.new(ActiveRecord::Base){ |o| o.table_name= name; }
|
86
82
|
dumper.call klass
|
87
|
-
rescue => e
|
83
|
+
rescue StandaraError => e
|
88
84
|
end
|
89
85
|
end
|
90
86
|
end
|
91
87
|
|
92
88
|
# parse arguments functions
|
93
89
|
module ARGS
|
94
|
-
#
|
90
|
+
# parse rake ENV parameters
|
95
91
|
def self.parse option={}
|
96
92
|
table_names = []
|
97
|
-
if ENV["T"] or ENV["TABLE"]
|
98
|
-
table_names =
|
93
|
+
if v = (ENV["T"] or ENV["TABLE"])
|
94
|
+
table_names = v.split(',').map{ |name| { table: name, file: name } }
|
99
95
|
end
|
100
|
-
if ENV["M"] or ENV["MODEL"]
|
101
|
-
table_names =
|
96
|
+
if v = (ENV["M"] or ENV["MODEL"])
|
97
|
+
table_names = v.split(',').map do |name|
|
102
98
|
name = name.constantize.table_name
|
103
99
|
{ table: name, file: name }
|
104
100
|
end
|
@@ -122,14 +118,23 @@ module Flextures
|
|
122
118
|
|
123
119
|
table_names = table_names.map{ |option| option.merge dir: ENV["DIR"] } if ENV["DIR"]
|
124
120
|
table_names = table_names.map{ |option| option.merge dir: ENV["D"] } if ENV["D"]
|
125
|
-
|
121
|
+
|
122
|
+
table_names = table_names.map{ |option| option.merge minus: ENV["MINUS"].to_s.split(",") } if ENV["MINUS"]
|
123
|
+
table_names = table_names.map{ |option| option.merge plus: ENV["PLUS"].to_s.split(",") } if ENV["PLUS"]
|
124
|
+
|
125
|
+
table_names = table_names.map{ |option| option.merge silent: true } if ENV["OPTION"].to_s.split(",").include?("silent")
|
126
|
+
table_names = table_names.map{ |option| option.merge unfilter: true } if ENV["OPTION"].to_s.split(",").include?("unfilter")
|
127
|
+
table_names = table_names.map{ |option| option.merge strict: true } if ENV["OPTION"].to_s.split(",").include?("strict")
|
128
|
+
|
129
|
+
# if mode is 'read mode' and file is not exist value is not return
|
126
130
|
table_names.select! &exist if option[:mode] && option[:mode] == 'read'
|
127
131
|
table_names
|
128
132
|
end
|
129
133
|
|
130
134
|
# check exist filename block
|
131
135
|
def self.exist
|
132
|
-
return->(name){ File.exists?(
|
136
|
+
return->(name){ File.exists?( File.join( Config.fixture_load_directory, "#{name}.csv") ) or
|
137
|
+
File.exists?( File.join( Config.fixture_load_directory, "#{name}.yml") ) }
|
133
138
|
end
|
134
139
|
end
|
135
140
|
end
|