flextures 3.1.3 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +6 -1
- data/Gemfile.lock +17 -13
- data/README.ja.md +15 -13
- data/README.md +9 -8
- data/Rakefile +5 -0
- data/flextures.gemspec +3 -1
- data/lib/flextures.rb +0 -3
- data/lib/flextures/flextures.rake +1 -42
- data/lib/flextures/flextures.rb +4 -7
- data/lib/flextures/flextures_base_config.rb +17 -28
- data/lib/flextures/flextures_command.rb +3 -5
- data/lib/flextures/flextures_dumper.rb +27 -29
- data/lib/flextures/flextures_extension_modules.rb +1 -14
- data/lib/flextures/flextures_factory.rb +3 -5
- data/lib/flextures/flextures_loader.rb +49 -51
- data/lib/flextures/flextures_railtie.rb +0 -2
- data/lib/flextures/rspec_flextures_support.rb +125 -71
- data/lib/flextures/version.rb +1 -1
- data/test/models/flextures_test.rb +8 -0
- data/test/test_helper.rb +4 -3
- data/test/unit/flextures_args_test.rb +178 -0
- data/test/unit/flextures_dumper_test.rb +232 -0
- data/test/unit/{test_flextures_extention_modules.rb → flextures_extention_modules_test.rb} +18 -13
- data/test/unit/flextures_hooks_test.rb +111 -0
- data/test/unit/flextures_loader_test.rb +313 -0
- metadata +9 -18
- data/lib/flextures/testunit_flextures_support.rb +0 -43
- data/test/unit/test_flextures.rb +0 -8
- data/test/unit/test_flextures_args.rb +0 -147
- data/test/unit/test_flextures_dumper.rb +0 -187
- data/test/unit/test_flextures_hooks.rb +0 -90
- data/test/unit/test_flextures_loader.rb +0 -271
- data/test/unit/test_simple.rb +0 -8
@@ -1,43 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
# flxtures function shouda support
|
4
|
-
module Shoulda
|
5
|
-
module Context
|
6
|
-
module ClassMethods
|
7
|
-
def create_or_get_flextures_loader
|
8
|
-
@flextures_loader ||= Flextures::Loader.new
|
9
|
-
end
|
10
|
-
|
11
|
-
def flextures( *_ )
|
12
|
-
flextures_loader = create_or_get_flextures_loader
|
13
|
-
|
14
|
-
context = Shoulda::Context.current_context
|
15
|
-
context.setup_blocks<< ->{ flextures_loader.flextures(*_) }
|
16
|
-
end
|
17
|
-
|
18
|
-
def flextures_delete( *_ )
|
19
|
-
context = Shoulda::Context.current_context
|
20
|
-
|
21
|
-
context.setup_blocks<< -> {
|
22
|
-
if _.empty?
|
23
|
-
Flextures::init_tables
|
24
|
-
else
|
25
|
-
Flextures::delete_tables(*_)
|
26
|
-
end
|
27
|
-
}
|
28
|
-
end
|
29
|
-
|
30
|
-
def flextures_set_options( options={} )
|
31
|
-
flextures_loader = create_or_get_flextures_loader
|
32
|
-
|
33
|
-
context = Shoulda::Context.current_context
|
34
|
-
context.setup_blocks<< -> {
|
35
|
-
flextures_loader.set_options(options)
|
36
|
-
}
|
37
|
-
context.teardown_blocks<< -> {
|
38
|
-
flextures_loader.delete_options
|
39
|
-
}
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
data/test/unit/test_flextures.rb
DELETED
@@ -1,147 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
class FlexturesArgsTest < Test::Unit::TestCase
|
4
|
-
context Flextures::ARGS do
|
5
|
-
context "if set TABLE='table_name' option " do
|
6
|
-
setup do
|
7
|
-
ENV["TABLE"] = "users"
|
8
|
-
@format = Flextures::ARGS.parse
|
9
|
-
end
|
10
|
-
should "return table_name" do
|
11
|
-
assert_equal "users", @format.first[:table]
|
12
|
-
end
|
13
|
-
should "filename is same table_name" do
|
14
|
-
assert_equal "users", @format.first[:file]
|
15
|
-
end
|
16
|
-
teardown do
|
17
|
-
ENV.delete("TABLE")
|
18
|
-
end
|
19
|
-
end
|
20
|
-
context "if set T=table_name option " do
|
21
|
-
setup do
|
22
|
-
ENV["T"] = "s_user"
|
23
|
-
@format = Flextures::ARGS.parse
|
24
|
-
end
|
25
|
-
should "retrun table_name" do
|
26
|
-
assert_equal "s_user", @format.first[:table]
|
27
|
-
end
|
28
|
-
should "filename is same table_name" do
|
29
|
-
assert_equal "s_user", @format.first[:file]
|
30
|
-
end
|
31
|
-
teardown do
|
32
|
-
ENV.delete("T")
|
33
|
-
end
|
34
|
-
end
|
35
|
-
context " DIR=option " do
|
36
|
-
setup do
|
37
|
-
ENV["T"] = "users"
|
38
|
-
ENV["DIR"] = "test/fixtures/"
|
39
|
-
@format = Flextures::ARGS.parse
|
40
|
-
end
|
41
|
-
should "directory name is exist" do
|
42
|
-
assert_equal "test/fixtures/", @format.first[:dir]
|
43
|
-
end
|
44
|
-
should "set table name" do
|
45
|
-
assert_equal "users", @format.first[:table]
|
46
|
-
end
|
47
|
-
should "file name is equal table name" do
|
48
|
-
assert_equal "users", @format.first[:file]
|
49
|
-
end
|
50
|
-
teardown do
|
51
|
-
ENV.delete("T")
|
52
|
-
ENV.delete("DIR")
|
53
|
-
end
|
54
|
-
end
|
55
|
-
context " D=option " do
|
56
|
-
setup do
|
57
|
-
ENV["T"] = "users"
|
58
|
-
ENV["D"] = "test/fixtures/"
|
59
|
-
@format = Flextures::ARGS.parse
|
60
|
-
end
|
61
|
-
should "directory name" do
|
62
|
-
assert_equal "test/fixtures/", @format.first[:dir]
|
63
|
-
end
|
64
|
-
should "table name is exist" do
|
65
|
-
assert_equal "users", @format.first[:table]
|
66
|
-
end
|
67
|
-
should "file name is equal table name" do
|
68
|
-
assert_equal "users", @format.first[:file]
|
69
|
-
end
|
70
|
-
teardown do
|
71
|
-
ENV.delete("T")
|
72
|
-
ENV.delete("D")
|
73
|
-
end
|
74
|
-
end
|
75
|
-
context " FIXTURES=option " do
|
76
|
-
setup do
|
77
|
-
ENV["T"] = "users"
|
78
|
-
ENV["FIXTURES"] = "user_another"
|
79
|
-
@format = Flextures::ARGS.parse
|
80
|
-
end
|
81
|
-
should "table name is exist" do
|
82
|
-
assert_equal "users", @format.first[:table]
|
83
|
-
end
|
84
|
-
should " file name is changed by option's name " do
|
85
|
-
assert_equal "user_another", @format.first[:file]
|
86
|
-
end
|
87
|
-
teardown do
|
88
|
-
ENV.delete("T")
|
89
|
-
ENV.delete("FIXTURES")
|
90
|
-
end
|
91
|
-
end
|
92
|
-
context " MINUS option " do
|
93
|
-
context "only one columns" do
|
94
|
-
setup do
|
95
|
-
ENV["T"]="users"
|
96
|
-
ENV["MINUS"]="id"
|
97
|
-
@format = Flextures::ARGS.parse
|
98
|
-
end
|
99
|
-
should " option contain 'minus' parameters" do
|
100
|
-
assert_equal ["id"], @format.first[:minus]
|
101
|
-
end
|
102
|
-
end
|
103
|
-
context "many columns" do
|
104
|
-
setup do
|
105
|
-
ENV["T"]="users"
|
106
|
-
ENV["MINUS"]="id,created_at,updated_at"
|
107
|
-
@format = Flextures::ARGS.parse
|
108
|
-
end
|
109
|
-
should " option contain 'minus' parameters" do
|
110
|
-
assert_equal ["id","created_at","updated_at"], @format.first[:minus]
|
111
|
-
end
|
112
|
-
end
|
113
|
-
teardown do
|
114
|
-
ENV.delete("T")
|
115
|
-
ENV.delete("MINUS")
|
116
|
-
end
|
117
|
-
end
|
118
|
-
context " PLUS options " do
|
119
|
-
setup do
|
120
|
-
ENV["T"]="users"
|
121
|
-
end
|
122
|
-
context "only one columns" do
|
123
|
-
setup do
|
124
|
-
ENV["PLUS"]="hoge"
|
125
|
-
@format = Flextures::ARGS.parse
|
126
|
-
end
|
127
|
-
should " option contain 'plus' parameters" do
|
128
|
-
assert_equal ["hoge"], @format.first[:plus]
|
129
|
-
end
|
130
|
-
end
|
131
|
-
context "many columns" do
|
132
|
-
setup do
|
133
|
-
ENV["PLUS"]="hoge,mage"
|
134
|
-
@format = Flextures::ARGS.parse
|
135
|
-
end
|
136
|
-
should " option contain 'plus' parameters" do
|
137
|
-
assert_equal ["hoge","mage"], @format.first[:plus]
|
138
|
-
end
|
139
|
-
end
|
140
|
-
teardown do
|
141
|
-
ENV.delete("T")
|
142
|
-
ENV.delete("MINUS")
|
143
|
-
end
|
144
|
-
end
|
145
|
-
end
|
146
|
-
end
|
147
|
-
|
@@ -1,187 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
class FlexturesDumperTest < Test::Unit::TestCase
|
4
|
-
context Flextures::Dumper do
|
5
|
-
context "TRANSLATE function rules" do
|
6
|
-
context :binary do
|
7
|
-
context :yml do
|
8
|
-
setup do
|
9
|
-
@trans = Flextures::Dumper::TRANSLATER[:binary]
|
10
|
-
end
|
11
|
-
should "nil translate 'null' string" do
|
12
|
-
assert_equal "null", @trans.call( nil, :yml )
|
13
|
-
end
|
14
|
-
end
|
15
|
-
context :csv do
|
16
|
-
setup do
|
17
|
-
@trans = Flextures::Dumper::TRANSLATER[:binary]
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
context :boolean do
|
22
|
-
context :yml do
|
23
|
-
setup do
|
24
|
-
@trans = Flextures::Dumper::TRANSLATER[:boolean]
|
25
|
-
end
|
26
|
-
should "nil translate 'null' string" do
|
27
|
-
assert_equal "null", @trans.call( nil, :yml )
|
28
|
-
end
|
29
|
-
should "0 translate false" do
|
30
|
-
assert_equal false, @trans.call( 0, :yml )
|
31
|
-
end
|
32
|
-
should "natural number translat true" do
|
33
|
-
assert_equal true, @trans.call( 1, :yml )
|
34
|
-
end
|
35
|
-
should " empty string translate dalse" do
|
36
|
-
assert_equal false, @trans.call( "", :yml )
|
37
|
-
end
|
38
|
-
should "string translate true" do
|
39
|
-
assert_equal true, @trans.call( "Hello", :yml )
|
40
|
-
end
|
41
|
-
end
|
42
|
-
context :csv do
|
43
|
-
setup do
|
44
|
-
@trans = Flextures::Dumper::TRANSLATER[:boolean]
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
context :date do
|
49
|
-
context :yml do
|
50
|
-
setup do
|
51
|
-
@trans = Flextures::Dumper::TRANSLATER[:date]
|
52
|
-
end
|
53
|
-
should "nil translate 'null' string" do
|
54
|
-
assert_equal "null", @trans.call( nil, :yml )
|
55
|
-
end
|
56
|
-
should "empty string translate 'null' string" do
|
57
|
-
assert_equal "null", @trans.call( "", :yml )
|
58
|
-
end
|
59
|
-
should "false translate 'null' string" do
|
60
|
-
assert_equal "null", @trans.call( false, :yml )
|
61
|
-
end
|
62
|
-
end
|
63
|
-
context :csv do
|
64
|
-
setup do
|
65
|
-
@trans = Flextures::Dumper::TRANSLATER[:date]
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
69
|
-
context :datetime do
|
70
|
-
context :yml do
|
71
|
-
setup do
|
72
|
-
@trans = Flextures::Dumper::TRANSLATER[:datetime]
|
73
|
-
end
|
74
|
-
should "nil translate 'null' string" do
|
75
|
-
assert_equal "null", @trans.call( nil, :yml )
|
76
|
-
end
|
77
|
-
should "empty string translate 'null' string" do
|
78
|
-
assert_equal "null", @trans.call( "", :yml )
|
79
|
-
end
|
80
|
-
should "false translate 'null' string" do
|
81
|
-
assert_equal "null", @trans.call( false, :yml )
|
82
|
-
end
|
83
|
-
end
|
84
|
-
context :csv do
|
85
|
-
end
|
86
|
-
end
|
87
|
-
context :float do
|
88
|
-
context :yml do
|
89
|
-
setup do
|
90
|
-
@trans = Flextures::Dumper::TRANSLATER[:float]
|
91
|
-
end
|
92
|
-
should "integral number don't translate" do
|
93
|
-
assert_equal 10, @trans.call( 10, :yml )
|
94
|
-
end
|
95
|
-
should "floating number don't translate" do
|
96
|
-
assert_equal 1.5, @trans.call( 1.5, :yml )
|
97
|
-
end
|
98
|
-
should "nil translate 'null' string" do
|
99
|
-
assert_equal "null", @trans.call( nil, :yml )
|
100
|
-
end
|
101
|
-
should "0 don't translate" do
|
102
|
-
assert_equal "null", @trans.call( nil, :yml )
|
103
|
-
end
|
104
|
-
should "false don't translate" do
|
105
|
-
assert_equal "null", @trans.call( nil, :yml )
|
106
|
-
end
|
107
|
-
end
|
108
|
-
context :csv do
|
109
|
-
end
|
110
|
-
end
|
111
|
-
context :integer do
|
112
|
-
context :yml do
|
113
|
-
setup do
|
114
|
-
@trans = Flextures::Dumper::TRANSLATER[:integer]
|
115
|
-
end
|
116
|
-
should "integral number don't translate" do
|
117
|
-
assert_equal 10, @trans.call( 10, :yml )
|
118
|
-
end
|
119
|
-
should "float number is floored" do
|
120
|
-
assert_equal 1, @trans.call( 1.5, :yml )
|
121
|
-
end
|
122
|
-
should "nil translate 'null' string" do
|
123
|
-
assert_equal "null", @trans.call( nil, :yml )
|
124
|
-
end
|
125
|
-
should "0 don't translate" do
|
126
|
-
assert_equal 0, @trans.call( 0, :yml )
|
127
|
-
end
|
128
|
-
should "false translate 0" do
|
129
|
-
assert_equal 0, @trans.call( false, :yml )
|
130
|
-
end
|
131
|
-
should "true translate 1" do
|
132
|
-
assert_equal 1, @trans.call( true, :yml )
|
133
|
-
end
|
134
|
-
end
|
135
|
-
context :csv do
|
136
|
-
setup do
|
137
|
-
@trans = Flextures::Dumper::TRANSLATER[:integer]
|
138
|
-
end
|
139
|
-
should "integral number don't translate" do
|
140
|
-
assert_equal 10, @trans.call( 10, :csv )
|
141
|
-
end
|
142
|
-
should 'nil translate empty string' do
|
143
|
-
assert_equal "", @trans.call( nil, :csv )
|
144
|
-
end
|
145
|
-
end
|
146
|
-
end
|
147
|
-
context :string do
|
148
|
-
context :yml do
|
149
|
-
setup do
|
150
|
-
@trans = Flextures::Dumper::TRANSLATER[:string]
|
151
|
-
end
|
152
|
-
should "nil translate 'null' string" do
|
153
|
-
assert_equal "null", @trans.call( nil, :yml )
|
154
|
-
end
|
155
|
-
should "empty string don't translate" do
|
156
|
-
assert_equal "null", @trans.call( nil, :yml )
|
157
|
-
end
|
158
|
-
should "false don't translate" do
|
159
|
-
assert_equal false, @trans.call( false, :yml )
|
160
|
-
end
|
161
|
-
should "true don't translate" do
|
162
|
-
assert_equal true, @trans.call( true, :yml )
|
163
|
-
end
|
164
|
-
end
|
165
|
-
end
|
166
|
-
context :null do
|
167
|
-
context :yml do
|
168
|
-
setup do
|
169
|
-
@trans = Flextures::Dumper::TRANSLATER[:null]
|
170
|
-
end
|
171
|
-
should "values is 'null' string" do
|
172
|
-
assert_equal "null", @trans.call( nil, :yml )
|
173
|
-
end
|
174
|
-
end
|
175
|
-
context :csv do
|
176
|
-
setup do
|
177
|
-
@trans = Flextures::Dumper::TRANSLATER[:null]
|
178
|
-
end
|
179
|
-
should "values is empty string" do
|
180
|
-
assert_equal "", @trans.call( nil, :csv )
|
181
|
-
end
|
182
|
-
end
|
183
|
-
end
|
184
|
-
end
|
185
|
-
end
|
186
|
-
end
|
187
|
-
|
@@ -1,90 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
class FlexturesHookTest < Test::Unit::TestCase
|
4
|
-
context Flextures::Loader do
|
5
|
-
context ".parse_flextures_options" do
|
6
|
-
context "set one table" do
|
7
|
-
setup do
|
8
|
-
@list = Flextures::Loader.parse_flextures_options(:users)
|
9
|
-
end
|
10
|
-
should "return table is Array" do
|
11
|
-
assert_equal true, @list.is_a?(Array)
|
12
|
-
end
|
13
|
-
should "return table is only one" do
|
14
|
-
assert_equal 1, @list.size
|
15
|
-
end
|
16
|
-
should "return data is content Hash data" do
|
17
|
-
assert_equal true, @list.first.is_a?(Hash)
|
18
|
-
end
|
19
|
-
should "return data is contain loading table infomation" do
|
20
|
-
h = { table: :users, file: "users", loader: :fun }
|
21
|
-
assert_equal h, @list.first
|
22
|
-
end
|
23
|
-
end
|
24
|
-
context "if set file name option" do
|
25
|
-
setup do
|
26
|
-
@list = Flextures::Loader.parse_flextures_options( :users => :users_another3 )
|
27
|
-
end
|
28
|
-
should "returned data size is only one" do
|
29
|
-
assert_equal 1, @list.size
|
30
|
-
end
|
31
|
-
should " 'file' option is changed setted file name" do
|
32
|
-
assert_equal :users_another3, @list.first[:file]
|
33
|
-
end
|
34
|
-
should "returned data include data" do
|
35
|
-
h = { table: :users, file: :users_another3, loader: :fun }
|
36
|
-
assert_equal h, @list.first
|
37
|
-
end
|
38
|
-
end
|
39
|
-
context "if set 'cache' option" do
|
40
|
-
setup do
|
41
|
-
@list = Flextures::Loader.parse_flextures_options( { cache: true }, :users )
|
42
|
-
end
|
43
|
-
should "setted cache option" do
|
44
|
-
assert_equal true, @list.first[:cache]
|
45
|
-
end
|
46
|
-
end
|
47
|
-
context " if set 'dir' option " do
|
48
|
-
setup do
|
49
|
-
@list = Flextures::Loader.parse_flextures_options( { dir: "a/b/c" }, :users )
|
50
|
-
end
|
51
|
-
should "setted cache option" do
|
52
|
-
assert_equal "a/b/c", @list.first[:dir]
|
53
|
-
end
|
54
|
-
end
|
55
|
-
context " if set 'controller' option " do
|
56
|
-
setup do
|
57
|
-
@list = Flextures::Loader.parse_flextures_options( { controller: "top" }, :users )
|
58
|
-
end
|
59
|
-
should "setted cache option" do
|
60
|
-
assert_equal "controllers/top", @list.first[:dir]
|
61
|
-
end
|
62
|
-
end
|
63
|
-
context " if set 'controller' and 'action' option " do
|
64
|
-
setup do
|
65
|
-
@list = Flextures::Loader.parse_flextures_options( { controller: "top", action:"index" }, :users )
|
66
|
-
end
|
67
|
-
should "setted cache option" do
|
68
|
-
assert_equal "controllers/top/index", @list.first[:dir]
|
69
|
-
end
|
70
|
-
end
|
71
|
-
context " if set 'model' option " do
|
72
|
-
setup do
|
73
|
-
@list = Flextures::Loader.parse_flextures_options( { model: "users" }, :users )
|
74
|
-
end
|
75
|
-
should "setted cache option" do
|
76
|
-
assert_equal "models/users", @list.first[:dir]
|
77
|
-
end
|
78
|
-
end
|
79
|
-
context " if set 'model' and 'method' option " do
|
80
|
-
setup do
|
81
|
-
@list = Flextures::Loader.parse_flextures_options( { model: "users", method:"login" }, :users )
|
82
|
-
end
|
83
|
-
should "setted cache option" do
|
84
|
-
assert_equal "models/users/login", @list.first[:dir]
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|