dslable 0.0.1

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.
@@ -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: