dslable 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +7 -7
- data/lib/dslable/version.rb +3 -3
- data/lib/dslable_args.rb +44 -44
- data/lib/dslable_core.rb +81 -81
- data/lib/dslable_dsl.rb +50 -50
- data/lib/dslable_field.rb +36 -36
- data/lib/generators/gem_template.rb +24 -24
- data/lib/generators/product_codes/cli.rb +11 -11
- data/lib/generators/product_codes/core.rb +16 -12
- data/lib/generators/product_codes/dsl.rb +14 -14
- data/lib/generators/product_codes/dsl_model.rb +10 -10
- data/lib/generators/rspec/spec_template.rb +21 -21
- data/lib/generators/rspec/specs.rb +27 -27
- data/lib/generators/settings/gemfile.rb +8 -8
- data/lib/generators/workflow.rb +76 -76
- data/spec/dslable_args_spec.rb +35 -29
- data/spec/dslable_core_spec.rb +25 -25
- data/spec/dslable_dsl_spec.rb +32 -32
- data/spec/dslable_field_spec.rb +15 -15
- data/spec/generators/gem_template_spec.rb +7 -7
- data/spec/generators/product_codes/cli_spec.rb +13 -13
- data/spec/generators/product_codes/core_spec.rb +24 -17
- data/spec/generators/product_codes/dsl_model_spec.rb +12 -12
- data/spec/generators/product_codes/dsl_spec.rb +15 -14
- data/spec/generators/rspec/spec_template_spec.rb +8 -8
- data/spec/generators/rspec/specs_spec.rb +8 -8
- data/spec/generators/settings/gemfile_spec.rb +11 -11
- data/spec/generators/workflow_spec.rb +11 -11
- data/spec/spec_helper.rb +2 -2
- metadata +16 -16
data/spec/dslable_args_spec.rb
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
require
|
3
|
-
require
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'dslable_args'
|
4
4
|
|
5
5
|
describe Dslable::Args do
|
6
6
|
context :desc do
|
7
7
|
cases = [
|
8
8
|
{
|
9
9
|
case_no: 1,
|
10
|
-
case_title:
|
11
|
-
input:
|
12
|
-
expected:
|
10
|
+
case_title: 'valid description',
|
11
|
+
input: 'this is descripotion',
|
12
|
+
expected: 'this is descripotion'
|
13
13
|
},
|
14
14
|
{
|
15
15
|
case_no: 2,
|
16
|
-
case_title:
|
17
|
-
input:
|
18
|
-
expected:
|
16
|
+
case_title: 'empty description',
|
17
|
+
input: '',
|
18
|
+
expected: ''
|
19
19
|
},
|
20
20
|
{
|
21
21
|
case_no: 3,
|
22
|
-
case_title:
|
22
|
+
case_title: 'nil description',
|
23
23
|
input: nil,
|
24
|
-
expected:
|
24
|
+
expected: ''
|
25
25
|
},
|
26
26
|
]
|
27
27
|
|
@@ -58,26 +58,26 @@ describe Dslable::Args do
|
|
58
58
|
cases = [
|
59
59
|
{
|
60
60
|
case_no: 1,
|
61
|
-
case_title:
|
62
|
-
input:
|
63
|
-
expected:
|
61
|
+
case_title: 'valid dsl_args name',
|
62
|
+
input: 'abcdefghijklmnopqrstuvwxyz01234567891_',
|
63
|
+
expected: 'abcdefghijklmnopqrstuvwxyz01234567891_'
|
64
64
|
},
|
65
65
|
{
|
66
66
|
case_no: 2,
|
67
|
-
case_title:
|
68
|
-
input:
|
67
|
+
case_title: 'empty dsl_args name',
|
68
|
+
input: '',
|
69
69
|
expect_error: true
|
70
70
|
},
|
71
71
|
{
|
72
72
|
case_no: 3,
|
73
|
-
case_title:
|
73
|
+
case_title: 'nil dsl_args name',
|
74
74
|
input: nil,
|
75
75
|
expect_error: true
|
76
76
|
},
|
77
77
|
{
|
78
78
|
case_no: 4,
|
79
|
-
case_title:
|
80
|
-
input:
|
79
|
+
case_title: 'invalid dsl_args name contain space',
|
80
|
+
input: 'method name',
|
81
81
|
expect_error: true
|
82
82
|
},
|
83
83
|
]
|
@@ -92,7 +92,7 @@ describe Dslable::Args do
|
|
92
92
|
|
93
93
|
# -- when --
|
94
94
|
if c[:expect_error]
|
95
|
-
lambda {dslable_args.args_name c[:input]}.should raise_error(Dslable::InvalidArgsError)
|
95
|
+
lambda { dslable_args.args_name c[:input] }.should raise_error(Dslable::InvalidArgsError)
|
96
96
|
next
|
97
97
|
end
|
98
98
|
dslable_args.args_name c[:input]
|
@@ -119,34 +119,40 @@ describe Dslable::Args do
|
|
119
119
|
cases = [
|
120
120
|
{
|
121
121
|
case_no: 1,
|
122
|
-
case_title:
|
122
|
+
case_title: 'valid klass String',
|
123
123
|
input: String,
|
124
124
|
expected: String
|
125
125
|
},
|
126
126
|
{
|
127
127
|
case_no: 2,
|
128
|
-
case_title:
|
128
|
+
case_title: 'valid klass Array',
|
129
129
|
input: Array,
|
130
130
|
expected: Array
|
131
131
|
},
|
132
132
|
{
|
133
133
|
case_no: 3,
|
134
|
-
case_title:
|
134
|
+
case_title: 'valid klass Hash',
|
135
135
|
input: Hash,
|
136
136
|
expected: Hash
|
137
137
|
},
|
138
138
|
{
|
139
139
|
case_no: 4,
|
140
|
-
case_title:
|
140
|
+
case_title: 'invalid klass Hash',
|
141
141
|
input: Fixnum,
|
142
142
|
expect_error: true
|
143
143
|
},
|
144
144
|
{
|
145
145
|
case_no: 5,
|
146
|
-
case_title:
|
146
|
+
case_title: 'nil klass',
|
147
147
|
input: nil,
|
148
148
|
expect_error: true
|
149
149
|
},
|
150
|
+
{
|
151
|
+
case_no: 6,
|
152
|
+
case_title: 'valid klass Boolean',
|
153
|
+
input: :Boolean,
|
154
|
+
expected: :Boolean
|
155
|
+
},
|
150
156
|
]
|
151
157
|
|
152
158
|
cases.each do |c|
|
@@ -159,7 +165,7 @@ describe Dslable::Args do
|
|
159
165
|
|
160
166
|
# -- when --
|
161
167
|
if c[:expect_error]
|
162
|
-
lambda {dslable_args.klass c[:input]}.should raise_error(Dslable::InvalidArgsError)
|
168
|
+
lambda { dslable_args.klass c[:input] }.should raise_error(Dslable::InvalidArgsError)
|
163
169
|
next
|
164
170
|
end
|
165
171
|
dslable_args.klass c[:input]
|
@@ -186,7 +192,7 @@ describe Dslable::Args do
|
|
186
192
|
cases = [
|
187
193
|
{
|
188
194
|
case_no: 1,
|
189
|
-
case_title:
|
195
|
+
case_title: 'valid required',
|
190
196
|
expected: true
|
191
197
|
},
|
192
198
|
]
|
@@ -224,9 +230,9 @@ describe Dslable::Args do
|
|
224
230
|
cases = [
|
225
231
|
{
|
226
232
|
case_no: 1,
|
227
|
-
case_title:
|
228
|
-
input:
|
229
|
-
expected:
|
233
|
+
case_title: 'valid default',
|
234
|
+
input: 'valid default',
|
235
|
+
expected: 'valid default'
|
230
236
|
},
|
231
237
|
]
|
232
238
|
|
data/spec/dslable_core_spec.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'dslable_core'
|
4
|
+
require 'fileutils'
|
5
5
|
|
6
6
|
describe Dslable::Core do
|
7
7
|
context :init do
|
8
8
|
cases = [
|
9
9
|
{
|
10
10
|
case_no: 1,
|
11
|
-
case_title:
|
11
|
+
case_title: 'output template',
|
12
12
|
expected: Dslable::Core::DSLDEFINE_TEMPLATE
|
13
13
|
},
|
14
14
|
]
|
@@ -25,7 +25,7 @@ describe Dslable::Core do
|
|
25
25
|
dslable_core.init
|
26
26
|
|
27
27
|
# -- then --
|
28
|
-
actual = File.open(Dslable::Core::DSLDEFINE_FILE) {|f|f.read}
|
28
|
+
actual = File.open(Dslable::Core::DSLDEFINE_FILE) { |f|f.read }
|
29
29
|
expect(actual).to eq(c[:expected])
|
30
30
|
ensure
|
31
31
|
case_after c
|
@@ -43,7 +43,7 @@ describe Dslable::Core do
|
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
|
-
GENERATE_DSLABLE_GEM_CASE
|
46
|
+
GENERATE_DSLABLE_GEM_CASE = <<-EOS
|
47
47
|
# encoding: utf-8
|
48
48
|
gem_name "sample_gem"
|
49
49
|
|
@@ -76,7 +76,7 @@ end
|
|
76
76
|
EOS
|
77
77
|
|
78
78
|
context :generate do
|
79
|
-
OUTPUT_CORE_TMP_DIR =
|
79
|
+
OUTPUT_CORE_TMP_DIR = 'core_tmp'
|
80
80
|
DSLDEFINE_TEMPLATE1 = <<-EOS
|
81
81
|
# encoding: utf-8
|
82
82
|
|
@@ -93,7 +93,7 @@ field :field_name1 do |f|
|
|
93
93
|
f.args :args_name do |a|
|
94
94
|
# set your args description
|
95
95
|
a.desc "args description"
|
96
|
-
# you can use String, Array and
|
96
|
+
# you can use String, Array, Hash and :Boolean
|
97
97
|
a.klass String
|
98
98
|
# if you want not required, comment out following line
|
99
99
|
a.required
|
@@ -115,22 +115,22 @@ end
|
|
115
115
|
cases = [
|
116
116
|
{
|
117
117
|
case_no: 1,
|
118
|
-
case_title:
|
118
|
+
case_title: 'output some_core, some_dsl, some_dsl_model and their spec.',
|
119
119
|
define_src: DSLDEFINE_TEMPLATE1,
|
120
|
-
gem_name:
|
120
|
+
gem_name: 'sample_gem',
|
121
121
|
expected_files: [
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
122
|
+
'./sample_gem/Gemfile',
|
123
|
+
'./sample_gem/sample_gem.gemspec',
|
124
|
+
'./sample_gem/.gitignore',
|
125
|
+
'./sample_gem/.rspec',
|
126
|
+
'./sample_gem/Rakefile',
|
127
|
+
'./sample_gem/README.md',
|
128
|
+
'./sample_gem/lib/sample_gem_core.rb',
|
129
|
+
'./sample_gem/lib/sample_gem_dsl.rb',
|
130
|
+
'./sample_gem/lib/sample_gem_dsl_model.rb',
|
131
|
+
'./sample_gem/bin/bin_name',
|
132
|
+
'./sample_gem/spec/spec_helper.rb',
|
133
|
+
'./sample_gem/spec/sample_gem_core_spec.rb',
|
134
134
|
]
|
135
135
|
},
|
136
136
|
]
|
@@ -147,7 +147,7 @@ end
|
|
147
147
|
dslable_core.generate
|
148
148
|
|
149
149
|
# -- then --
|
150
|
-
Dir.chdir(
|
150
|
+
Dir.chdir('../')
|
151
151
|
c[:expected_files].each do |expected_file|
|
152
152
|
actual = File.exists? expected_file
|
153
153
|
expect(actual).to be_true
|
@@ -161,12 +161,12 @@ end
|
|
161
161
|
# implement each case before
|
162
162
|
Dir.mkdir(OUTPUT_CORE_TMP_DIR) unless Dir.exists? OUTPUT_CORE_TMP_DIR
|
163
163
|
Dir.chdir(OUTPUT_CORE_TMP_DIR)
|
164
|
-
File.open(Dslable::Core::DSLDEFINE_FILE,
|
164
|
+
File.open(Dslable::Core::DSLDEFINE_FILE, 'w') { |f|f.puts c[:define_src] }
|
165
165
|
end
|
166
166
|
|
167
167
|
def case_after(c)
|
168
168
|
# implement each case after
|
169
|
-
Dir.chdir(
|
169
|
+
Dir.chdir('../')
|
170
170
|
FileUtils.rm_rf(OUTPUT_CORE_TMP_DIR) if Dir.exists? OUTPUT_CORE_TMP_DIR
|
171
171
|
end
|
172
172
|
end
|
data/spec/dslable_dsl_spec.rb
CHANGED
@@ -1,32 +1,32 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
require
|
3
|
-
require
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'dslable_dsl'
|
4
4
|
|
5
5
|
describe Dslable::Dsl do
|
6
6
|
context :gem_name do
|
7
7
|
cases = [
|
8
8
|
{
|
9
9
|
case_no: 1,
|
10
|
-
case_title:
|
11
|
-
input:
|
12
|
-
expected:
|
10
|
+
case_title: 'valid gem name',
|
11
|
+
input: 'abcdefghijklmnopqrstuvwxyz01234567891_',
|
12
|
+
expected: 'abcdefghijklmnopqrstuvwxyz01234567891_'
|
13
13
|
},
|
14
14
|
{
|
15
15
|
case_no: 2,
|
16
|
-
case_title:
|
17
|
-
input:
|
16
|
+
case_title: 'empty gem name',
|
17
|
+
input: '',
|
18
18
|
expect_error: true
|
19
19
|
},
|
20
20
|
{
|
21
21
|
case_no: 3,
|
22
|
-
case_title:
|
22
|
+
case_title: 'nil gem name',
|
23
23
|
input: nil,
|
24
24
|
expect_error: true
|
25
25
|
},
|
26
26
|
{
|
27
27
|
case_no: 4,
|
28
|
-
case_title:
|
29
|
-
input:
|
28
|
+
case_title: 'invalid gem name contain space',
|
29
|
+
input: 'gem name',
|
30
30
|
expect_error: true
|
31
31
|
},
|
32
32
|
]
|
@@ -41,7 +41,7 @@ describe Dslable::Dsl do
|
|
41
41
|
|
42
42
|
# -- when --
|
43
43
|
if c[:expect_error]
|
44
|
-
lambda {dslable_dsl.gem_name c[:input]}.should raise_error(Dslable::InvalidDslError)
|
44
|
+
lambda { dslable_dsl.gem_name c[:input] }.should raise_error(Dslable::InvalidDslError)
|
45
45
|
next
|
46
46
|
end
|
47
47
|
dslable_dsl.gem_name c[:input]
|
@@ -68,19 +68,19 @@ describe Dslable::Dsl do
|
|
68
68
|
cases = [
|
69
69
|
{
|
70
70
|
case_no: 1,
|
71
|
-
case_title:
|
72
|
-
input:
|
73
|
-
expected:
|
71
|
+
case_title: 'valid gem desc',
|
72
|
+
input: 'abcdefghijklmnopqrstuvwxyz01234567891_',
|
73
|
+
expected: 'abcdefghijklmnopqrstuvwxyz01234567891_'
|
74
74
|
},
|
75
75
|
{
|
76
76
|
case_no: 2,
|
77
|
-
case_title:
|
78
|
-
input:
|
77
|
+
case_title: 'empty gem desc',
|
78
|
+
input: '',
|
79
79
|
expect_error: true
|
80
80
|
},
|
81
81
|
{
|
82
82
|
case_no: 3,
|
83
|
-
case_title:
|
83
|
+
case_title: 'nil gem desc',
|
84
84
|
input: nil,
|
85
85
|
expect_error: true
|
86
86
|
},
|
@@ -96,7 +96,7 @@ describe Dslable::Dsl do
|
|
96
96
|
|
97
97
|
# -- when --
|
98
98
|
if c[:expect_error]
|
99
|
-
lambda {dslable_dsl.gem_desc c[:input]}.should raise_error(Dslable::InvalidDslError)
|
99
|
+
lambda { dslable_dsl.gem_desc c[:input] }.should raise_error(Dslable::InvalidDslError)
|
100
100
|
next
|
101
101
|
end
|
102
102
|
dslable_dsl.gem_desc c[:input]
|
@@ -123,15 +123,15 @@ describe Dslable::Dsl do
|
|
123
123
|
cases = [
|
124
124
|
{
|
125
125
|
case_no: 1,
|
126
|
-
case_title:
|
126
|
+
case_title: 'case_title',
|
127
127
|
input_field_name: :field_name,
|
128
|
-
input_field_desc:
|
128
|
+
input_field_desc: 'field_desc',
|
129
129
|
input_args_name: :args_name,
|
130
|
-
input_args_desc:
|
130
|
+
input_args_desc: 'args_desc',
|
131
131
|
expected_field_name: :field_name,
|
132
|
-
expected_field_desc:
|
132
|
+
expected_field_desc: 'field_desc',
|
133
133
|
expected_args_name: :args_name,
|
134
|
-
expected_args_desc:
|
134
|
+
expected_args_desc: 'args_desc',
|
135
135
|
},
|
136
136
|
]
|
137
137
|
|
@@ -176,26 +176,26 @@ describe Dslable::Dsl do
|
|
176
176
|
cases = [
|
177
177
|
{
|
178
178
|
case_no: 1,
|
179
|
-
case_title:
|
180
|
-
input:
|
181
|
-
expected:
|
179
|
+
case_title: 'valid bin name',
|
180
|
+
input: 'abcdefghijklmnopqrstuvwxyz01234567891_',
|
181
|
+
expected: 'abcdefghijklmnopqrstuvwxyz01234567891_'
|
182
182
|
},
|
183
183
|
{
|
184
184
|
case_no: 2,
|
185
|
-
case_title:
|
186
|
-
input:
|
185
|
+
case_title: 'empty bin name',
|
186
|
+
input: '',
|
187
187
|
expect_error: true
|
188
188
|
},
|
189
189
|
{
|
190
190
|
case_no: 3,
|
191
|
-
case_title:
|
191
|
+
case_title: 'nil bin name',
|
192
192
|
input: nil,
|
193
193
|
expect_error: true
|
194
194
|
},
|
195
195
|
{
|
196
196
|
case_no: 4,
|
197
|
-
case_title:
|
198
|
-
input:
|
197
|
+
case_title: 'invalid bin name contain space',
|
198
|
+
input: 'bin name',
|
199
199
|
expect_error: true
|
200
200
|
},
|
201
201
|
]
|
@@ -210,7 +210,7 @@ describe Dslable::Dsl do
|
|
210
210
|
|
211
211
|
# -- when --
|
212
212
|
if c[:expect_error]
|
213
|
-
lambda {dslable_dsl.bin_name c[:input]}.should raise_error(Dslable::InvalidDslError)
|
213
|
+
lambda { dslable_dsl.bin_name c[:input] }.should raise_error(Dslable::InvalidDslError)
|
214
214
|
next
|
215
215
|
end
|
216
216
|
dslable_dsl.bin_name c[:input]
|
data/spec/dslable_field_spec.rb
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
require
|
3
|
-
require
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'dslable_field'
|
4
4
|
|
5
5
|
describe Dslable::Field do
|
6
6
|
context :desc do
|
7
7
|
cases = [
|
8
8
|
{
|
9
9
|
case_no: 1,
|
10
|
-
case_title:
|
11
|
-
input:
|
12
|
-
expected:
|
10
|
+
case_title: 'valid description',
|
11
|
+
input: 'this is descripotion',
|
12
|
+
expected: 'this is descripotion'
|
13
13
|
},
|
14
14
|
{
|
15
15
|
case_no: 2,
|
16
|
-
case_title:
|
17
|
-
input:
|
18
|
-
expected:
|
16
|
+
case_title: 'empty description',
|
17
|
+
input: '',
|
18
|
+
expected: ''
|
19
19
|
},
|
20
20
|
{
|
21
21
|
case_no: 3,
|
22
|
-
case_title:
|
22
|
+
case_title: 'nil description',
|
23
23
|
input: nil,
|
24
|
-
expected:
|
24
|
+
expected: ''
|
25
25
|
},
|
26
26
|
]
|
27
27
|
|
@@ -58,17 +58,17 @@ describe Dslable::Field do
|
|
58
58
|
cases = [
|
59
59
|
{
|
60
60
|
case_no: 1,
|
61
|
-
case_title:
|
61
|
+
case_title: 'valid args',
|
62
62
|
input_key: :args_name,
|
63
|
-
input_desc:
|
63
|
+
input_desc: 'desc',
|
64
64
|
input_klass: String,
|
65
65
|
input_required: true,
|
66
|
-
input_default_value:
|
66
|
+
input_default_value: 'default',
|
67
67
|
expected_key: :args_name,
|
68
|
-
expected_desc:
|
68
|
+
expected_desc: 'desc',
|
69
69
|
expected_klass: String,
|
70
70
|
expected_required: true,
|
71
|
-
expected_default_value:
|
71
|
+
expected_default_value: 'default',
|
72
72
|
},
|
73
73
|
]
|
74
74
|
|