dslable 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,54 @@
1
+ # encoding: utf-8
2
+ require "spec_helper"
3
+ require "generators/rspec/spec_template"
4
+ require "dslable_dsl"
5
+
6
+ describe Dslable::Generators::RSpec::SpecTemplate do
7
+
8
+ context :generate do
9
+ OUTPUT_SPEC_TMP_DIR = "generate_spec_template"
10
+
11
+ cases = [
12
+ {
13
+ case_no: 1,
14
+ case_title: "valid spec template",
15
+ gem_name: "sample_gem",
16
+ spec_dir_name: "spec"
17
+ },
18
+ ]
19
+
20
+ cases.each do |c|
21
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
22
+ begin
23
+ case_before c
24
+
25
+ # -- given --
26
+ dsl = Dslable::Dsl.new
27
+ dsl.gem_name c[:gem_name]
28
+ spec_template = Dslable::Generators::RSpec::SpecTemplate.new(dsl)
29
+
30
+ # -- when --
31
+ spec_template.generate
32
+
33
+ # -- then --
34
+ actual = Dir.exists?("./#{c[:spec_dir_name]}")
35
+ expect(actual).to be_true
36
+ ensure
37
+ case_after c
38
+
39
+ end
40
+ end
41
+
42
+ def case_before(c)
43
+ Dir.mkdir(OUTPUT_SPEC_TMP_DIR) unless Dir.exists? OUTPUT_SPEC_TMP_DIR
44
+ Dir.chdir(OUTPUT_SPEC_TMP_DIR)
45
+ end
46
+
47
+ def case_after(c)
48
+ Dir.chdir("../")
49
+ FileUtils.rm_rf(OUTPUT_SPEC_TMP_DIR) if Dir.exists? OUTPUT_SPEC_TMP_DIR
50
+ end
51
+ end
52
+ end
53
+
54
+ end
@@ -0,0 +1,56 @@
1
+ # encoding: utf-8
2
+ require "spec_helper"
3
+ require "generators/rspec/specs"
4
+ require "dslable_dsl"
5
+
6
+ describe Dslable::Generators::RSpec::Specs do
7
+
8
+ context :generate do
9
+ OUTPUT_SPECS_TMP_DIR = "generate_specs_template"
10
+
11
+ cases = [
12
+ {
13
+ case_no: 1,
14
+ case_title: "valid specs template",
15
+ gem_name: "sample_gem",
16
+ specs: ["spec/sample_gem_core_spec.rb"]
17
+ },
18
+ ]
19
+
20
+ cases.each do |c|
21
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
22
+ begin
23
+ case_before c
24
+
25
+ # -- given --
26
+ dsl = Dslable::Dsl.new
27
+ dsl.gem_name c[:gem_name]
28
+ specs = Dslable::Generators::RSpec::Specs.new(dsl)
29
+
30
+ # -- when --
31
+ specs.generate
32
+
33
+ # -- then --
34
+ c[:specs].each do |spec|
35
+ actual = File.exists?("./#{spec}")
36
+ expect(actual).to be_true
37
+ end
38
+ ensure
39
+ case_after c
40
+
41
+ end
42
+ end
43
+
44
+ def case_before(c)
45
+ Dir.mkdir(OUTPUT_SPECS_TMP_DIR) unless Dir.exists? OUTPUT_SPECS_TMP_DIR
46
+ Dir.chdir(OUTPUT_SPECS_TMP_DIR)
47
+ end
48
+
49
+ def case_after(c)
50
+ Dir.chdir("../")
51
+ FileUtils.rm_rf(OUTPUT_SPECS_TMP_DIR) if Dir.exists? OUTPUT_SPECS_TMP_DIR
52
+ end
53
+ end
54
+ end
55
+
56
+ end
@@ -0,0 +1,78 @@
1
+ # encoding: utf-8
2
+ require "spec_helper"
3
+ require "generators/settings/gemfile"
4
+
5
+ describe Dslable::Generators::Settings::Gemfile do
6
+
7
+ context :generate do
8
+ OUTPUT_GEMFILE_TMP_DIR = "generate_gemfile"
9
+
10
+ cases = [
11
+ {
12
+ case_no: 1,
13
+ case_title: "generate",
14
+ gem_name: "sample_gem",
15
+ bin_name: "samplegem",
16
+ fields: [:field1],
17
+ fields_descs: ["field_desc1"],
18
+ args: [:args1],
19
+ args_klass: [String],
20
+ args_required: [true],
21
+ args_default: ["default1"],
22
+ expected_file: "./Gemfile",
23
+ expected_contents: Dslable::Generators::Settings::Gemfile::GEMFILE_TEMPLATE
24
+ },
25
+ ]
26
+
27
+ cases.each do |c|
28
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
29
+ begin
30
+ case_before c
31
+
32
+ # -- given --
33
+ dsl = Dslable::Dsl.new
34
+ gen_gemfile = Dslable::Generators::Settings::Gemfile.new(setup_dsl(c, dsl))
35
+
36
+ # -- when --
37
+ gen_gemfile.generate
38
+
39
+ # -- then --
40
+ actual = File.open(c[:expected_file]) {|f|f.read}
41
+ expect(actual).to eq(c[:expected_contents])
42
+ ensure
43
+ case_after c
44
+
45
+ end
46
+ end
47
+
48
+ def case_before(c)
49
+ # implement each case before
50
+ Dir.mkdir(OUTPUT_GEMFILE_TMP_DIR) unless Dir.exists? OUTPUT_GEMFILE_TMP_DIR
51
+ Dir.chdir(OUTPUT_GEMFILE_TMP_DIR)
52
+ end
53
+
54
+ def setup_dsl(c, dsl)
55
+ dsl.gem_name c[:gem_name]
56
+ dsl.bin_name c[:bin_name]
57
+ c[:fields].each_with_index do |field, i|
58
+ dsl.field c[:fields][i] do |f|
59
+ f.desc c[:fields_descs][i]
60
+ f.args c[:args][i] do |a|
61
+ a.klass c[:args_klass][i]
62
+ a.required if c[:args_required][i]
63
+ a.default_value c[:args_default][i]
64
+ end
65
+ end
66
+ end
67
+ dsl
68
+ end
69
+
70
+ def case_after(c)
71
+ # implement each case after
72
+ Dir.chdir("../")
73
+ FileUtils.rm_rf(OUTPUT_GEMFILE_TMP_DIR) if Dir.exists? OUTPUT_GEMFILE_TMP_DIR
74
+ end
75
+ end
76
+ end
77
+
78
+ end
@@ -0,0 +1,8 @@
1
+ require "simplecov"
2
+ SimpleCov.start "rails"
3
+
4
+ RSpec.configure do |config|
5
+ config.treat_symbols_as_metadata_keys_with_true_values = true
6
+ config.run_all_when_everything_filtered = true
7
+ config.filter_run :focus
8
+ end
metadata ADDED
@@ -0,0 +1,173 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dslable
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - tbpgr@tbpgr.jp
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-12-22 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: thor
16
+ requirement: &21204576 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 0.18.1
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *21204576
25
+ - !ruby/object:Gem::Dependency
26
+ name: activesupport
27
+ requirement: &21213348 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 4.0.1
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *21213348
36
+ - !ruby/object:Gem::Dependency
37
+ name: rspec_piccolo
38
+ requirement: &21212700 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 0.0.6
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *21212700
47
+ - !ruby/object:Gem::Dependency
48
+ name: bundler
49
+ requirement: &21210648 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *21210648
58
+ - !ruby/object:Gem::Dependency
59
+ name: rspec
60
+ requirement: &21223656 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: 2.14.1
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: *21223656
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: &21219780 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *21219780
80
+ - !ruby/object:Gem::Dependency
81
+ name: simplecov
82
+ requirement: &21216972 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ~>
86
+ - !ruby/object:Gem::Version
87
+ version: 0.8.2
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *21216972
91
+ description: Dslable is generator for simple gem-code template.
92
+ email:
93
+ - tbpgr@tbpgr.jp
94
+ executables:
95
+ - dslable
96
+ extensions: []
97
+ extra_rdoc_files: []
98
+ files:
99
+ - .gitignore
100
+ - .rspec
101
+ - Gemfile
102
+ - LICENSE.txt
103
+ - README.md
104
+ - Rakefile
105
+ - bin/dslable
106
+ - dslable.gemspec
107
+ - lib/dslable/version.rb
108
+ - lib/dslable_args.rb
109
+ - lib/dslable_core.rb
110
+ - lib/dslable_dsl.rb
111
+ - lib/dslable_field.rb
112
+ - lib/generators/gem_template.rb
113
+ - lib/generators/generators.rb
114
+ - lib/generators/product_codes/cli.rb
115
+ - lib/generators/product_codes/core.rb
116
+ - lib/generators/product_codes/dsl.rb
117
+ - lib/generators/product_codes/dsl_model.rb
118
+ - lib/generators/rspec/spec_template.rb
119
+ - lib/generators/rspec/specs.rb
120
+ - lib/generators/settings/gemfile.rb
121
+ - spec/dslable_args_spec.rb
122
+ - spec/dslable_core_spec.rb
123
+ - spec/dslable_dsl_spec.rb
124
+ - spec/dslable_field_spec.rb
125
+ - spec/generators/gem_template_spec.rb
126
+ - spec/generators/product_codes/cli_spec.rb
127
+ - spec/generators/product_codes/core_spec.rb
128
+ - spec/generators/product_codes/dsl_model_spec.rb
129
+ - spec/generators/product_codes/dsl_spec.rb
130
+ - spec/generators/rspec/spec_template_spec.rb
131
+ - spec/generators/rspec/specs_spec.rb
132
+ - spec/generators/settings/gemfile_spec.rb
133
+ - spec/spec_helper.rb
134
+ homepage: https://github.com/tbpgr/dslable
135
+ licenses:
136
+ - MIT
137
+ post_install_message:
138
+ rdoc_options: []
139
+ require_paths:
140
+ - lib
141
+ required_ruby_version: !ruby/object:Gem::Requirement
142
+ none: false
143
+ requirements:
144
+ - - ! '>='
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ required_rubygems_version: !ruby/object:Gem::Requirement
148
+ none: false
149
+ requirements:
150
+ - - ! '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ requirements: []
154
+ rubyforge_project:
155
+ rubygems_version: 1.8.11
156
+ signing_key:
157
+ specification_version: 3
158
+ summary: Dslable is generator for simple gem-code template.
159
+ test_files:
160
+ - spec/dslable_args_spec.rb
161
+ - spec/dslable_core_spec.rb
162
+ - spec/dslable_dsl_spec.rb
163
+ - spec/dslable_field_spec.rb
164
+ - spec/generators/gem_template_spec.rb
165
+ - spec/generators/product_codes/cli_spec.rb
166
+ - spec/generators/product_codes/core_spec.rb
167
+ - spec/generators/product_codes/dsl_model_spec.rb
168
+ - spec/generators/product_codes/dsl_spec.rb
169
+ - spec/generators/rspec/spec_template_spec.rb
170
+ - spec/generators/rspec/specs_spec.rb
171
+ - spec/generators/settings/gemfile_spec.rb
172
+ - spec/spec_helper.rb
173
+ has_rdoc: