gemaker 0.1.3 → 0.2.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.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +2 -0
  3. data/.ruby-version +1 -0
  4. data/.travis.yml +13 -0
  5. data/CHANGELOG.md +11 -0
  6. data/Gemfile +1 -1
  7. data/LICENSE.txt +1 -1
  8. data/README.md +35 -1
  9. data/bin/console +14 -0
  10. data/bin/setup +8 -0
  11. data/exe/gemaker +9 -0
  12. data/gemaker.gemspec +23 -10
  13. data/lib/gemaker.rb +22 -1
  14. data/lib/gemaker/cli.rb +61 -0
  15. data/lib/gemaker/commands/add_changelog.rb +10 -0
  16. data/lib/gemaker/commands/add_cli_structure.rb +12 -0
  17. data/lib/gemaker/commands/add_hound_rules.rb +12 -0
  18. data/lib/gemaker/commands/add_install_generator.rb +16 -0
  19. data/lib/gemaker/commands/add_license.rb +11 -0
  20. data/lib/gemaker/commands/add_readme.rb +16 -0
  21. data/lib/gemaker/commands/add_ruby_version.rb +10 -0
  22. data/lib/gemaker/commands/base.rb +24 -0
  23. data/lib/gemaker/commands/configure_git.rb +13 -0
  24. data/lib/gemaker/commands/configure_test_env.rb +27 -0
  25. data/lib/gemaker/commands/create_gem.rb +36 -0
  26. data/lib/gemaker/commands/customize_engine.rb +13 -0
  27. data/lib/gemaker/commands/customize_gemspec.rb +20 -0
  28. data/lib/gemaker/commands/customize_main_lib_file.rb +10 -0
  29. data/lib/gemaker/commands/customize_rakefile.rb +20 -0
  30. data/lib/gemaker/config.rb +66 -0
  31. data/lib/gemaker/templates/CHANGELOG.md +7 -0
  32. data/lib/gemaker/templates/LICENSE.txt.erb +21 -0
  33. data/lib/gemaker/templates/cli.rb.erb +19 -0
  34. data/lib/gemaker/templates/engine/Guardfile +15 -0
  35. data/lib/gemaker/templates/engine/README.md.erb +55 -0
  36. data/lib/gemaker/templates/engine/Rakefile +10 -0
  37. data/lib/gemaker/templates/engine/engine.rb.erb +15 -0
  38. data/lib/gemaker/templates/engine/example_class.rb.erb +7 -0
  39. data/lib/gemaker/templates/engine/gemspec.erb +29 -0
  40. data/lib/gemaker/templates/engine/initializer.rb.erb +2 -0
  41. data/lib/gemaker/templates/engine/install_generator.rb.erb +21 -0
  42. data/lib/gemaker/templates/engine/install_usage.erb +5 -0
  43. data/lib/gemaker/templates/engine/lib_main_file.rb.erb +25 -0
  44. data/lib/gemaker/templates/engine/rails_helper.rb.erb +28 -0
  45. data/lib/gemaker/templates/engine/rspec +3 -0
  46. data/lib/gemaker/templates/engine/spec_helper.rb.erb +9 -0
  47. data/lib/gemaker/templates/engine/test_example.rb.erb +16 -0
  48. data/lib/gemaker/templates/exe.erb +9 -0
  49. data/lib/gemaker/templates/image.png +0 -0
  50. data/lib/gemaker/templates/normal/Guardfile +5 -0
  51. data/lib/gemaker/templates/normal/README.md.erb +53 -0
  52. data/lib/gemaker/templates/normal/Rakefile +1 -0
  53. data/lib/gemaker/templates/normal/gemspec.erb +29 -0
  54. data/lib/gemaker/templates/normal/spec_helper.rb.erb +13 -0
  55. data/lib/gemaker/templates/normal/test_example.rb.erb +15 -0
  56. data/lib/gemaker/templates/ruby-version.erb +1 -0
  57. data/lib/gemaker/templates/test_helpers.rb +5 -0
  58. data/lib/gemaker/templates/video.mp4 +0 -0
  59. data/lib/gemaker/util.rb +77 -0
  60. data/lib/gemaker/version.rb +2 -2
  61. metadata +183 -18
  62. data/CODE_OF_CONDUCT.md +0 -49
  63. data/Guardfile +0 -46
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+ lib = File.expand_path(File.dirname(__FILE__) + "/../lib")
3
+ $LOAD_PATH.unshift(lib) if File.directory?(lib) && !$LOAD_PATH.include?(lib)
4
+
5
+ require "commander"
6
+ require "<%= config.gem_name %>"
7
+ require "<%= config.gem_name %>/cli"
8
+
9
+ <%= config.gem_class %>::Cli.new.run
@@ -0,0 +1,5 @@
1
+ guard :rspec, cmd: 'rspec' do
2
+ watch(%r{^spec/.+_spec\.rb$})
3
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
4
+ watch('spec/spec_helper.rb') { "spec" }
5
+ end
@@ -0,0 +1,53 @@
1
+ # <%= config.human_gem_name %>
2
+
3
+ <%= config.description.blank? ? "TODO" : config.description %>
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ $ gem install <%= config.gem_name %>
9
+ ```
10
+
11
+ Or add to your Gemfile:
12
+
13
+ ```ruby
14
+ gem "<%= config.gem_name %>"
15
+ ```
16
+
17
+ ```bash
18
+ bundle install
19
+ ```
20
+
21
+ ## Usage
22
+
23
+ TODO
24
+
25
+ ## Testing
26
+
27
+ To run the specs you need to execute, **in the root path of the gem**, the following command:
28
+
29
+ ```bash
30
+ bundle exec guard
31
+ ```
32
+
33
+ You need to put **all your tests** in the `/my_gem/spec/` directory.
34
+
35
+ ## Contributing
36
+
37
+ 1. Fork it
38
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
39
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
40
+ 4. Push to the branch (`git push origin my-new-feature`)
41
+ 5. Create new Pull Request
42
+
43
+ ## Credits
44
+
45
+ Thank you [contributors](https://github.com/platanus/<%= config.gem_name %>/graphs/contributors)!
46
+
47
+ <img src="http://platan.us/gravatar_with_text.png" alt="Platanus" width="250"/>
48
+
49
+ <%= config.human_gem_name %> is maintained by [platanus](http://platan.us).
50
+
51
+ ## License
52
+
53
+ <%= config.human_gem_name %> is © <%= Time.now.year %> platanus, spa. It is free software and may be redistributed under the terms specified in the LICENSE file.
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,29 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "<%= config.gem_name %>/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "<%= config.gem_name %>"
8
+ spec.version = <%= config.gem_class %>::VERSION
9
+ spec.authors = <%= config.authors.to_s %>
10
+ spec.email = <%= config.emails.to_s %>
11
+ spec.homepage = "<%= config.homepage %>"
12
+ spec.summary = "<%= config.summary %>"
13
+ spec.description = "<%= config.description %>"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.bindir = "exe"
18
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
+ spec.require_paths = ["lib"]
20
+
21
+ <% if config.cli? -%>
22
+ <%= "spec.add_dependency \"commander\", \"~> 4.4\", \">= 4.4.0\"" %>
23
+ <% end -%>
24
+ spec.add_development_dependency "bundler", "~> 1.12"
25
+ spec.add_development_dependency "rake", "~> 10.0"
26
+ spec.add_development_dependency "rspec", "~> 3.4"
27
+ spec.add_development_dependency "guard-rspec", "~> 4.7"
28
+ spec.add_development_dependency "pry"
29
+ end
@@ -0,0 +1,13 @@
1
+ $LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
2
+ require "<%= config.gem_name %>"
3
+ require "pry"
4
+
5
+ path = [File.dirname(__FILE__), "support", "**", "*.rb"]
6
+ Dir[File.join(path)].each { |f| require f }
7
+
8
+ RSpec.configure do |config|
9
+ config.filter_run :focus
10
+ config.run_all_when_everything_filtered = true
11
+
12
+ config.include TestHelpers
13
+ end
@@ -0,0 +1,15 @@
1
+ require "spec_helper"
2
+
3
+ describe <%= config.gem_class %> do
4
+ before do
5
+ helper_example
6
+ end
7
+
8
+ it "has a version number" do
9
+ expect(<%= config.gem_class %>::VERSION).not_to be nil
10
+ end
11
+
12
+ it "does something useful" do
13
+ expect(false).to eq(true)
14
+ end
15
+ end
@@ -0,0 +1 @@
1
+ <%= config.ruby_version %>
@@ -0,0 +1,5 @@
1
+ module TestHelpers
2
+ def helper_example
3
+ puts "Add your custom helpers here: #{File.dirname(__FILE__)}"
4
+ end
5
+ end
@@ -0,0 +1,77 @@
1
+ module Gemaker
2
+ module Util
3
+ def copy_file(source, destination)
4
+ ::FileUtils.cp(get_template_path(source), get_destination_path(destination))
5
+ end
6
+
7
+ def copy_template(source, destination, locales = {})
8
+ template_path = get_template_path(source) + ".erb"
9
+ destination_path = get_destination_path(destination)
10
+
11
+ input = File.open(template_path)
12
+ output = File.open(destination_path, "w+")
13
+ output.write(parse_erb(input.read, locales))
14
+ output.close
15
+ input.close
16
+ end
17
+
18
+ def remove_in_gem(path)
19
+ full_path = File.join(gem_root_path, path)
20
+
21
+ if File.exist?(full_path)
22
+ ::FileUtils.rm_rf(File.join(gem_root_path, path))
23
+ return
24
+ end
25
+
26
+ puts "Can't delete because #{full_path} does not exist"
27
+ end
28
+
29
+ def execute(cmd, error_message = nil)
30
+ system cmd
31
+ error(error_message) if $?.exitstatus != 0
32
+ end
33
+
34
+ def execute_in_gem(cmd, error_message = nil)
35
+ system "cd #{gem_root_path}; #{cmd}"
36
+ error(error_message) if $?.exitstatus != 0
37
+ system "cd .."
38
+ end
39
+
40
+ def create_dir(path)
41
+ ::FileUtils.mkdir_p(get_destination_path(path))
42
+ end
43
+
44
+ def get_destination_path(destination)
45
+ destination_path = File.join(gem_root_path, destination)
46
+ ::FileUtils.mkdir_p(File.dirname(destination_path))
47
+ destination_path
48
+ end
49
+
50
+ def get_template_path(file_path)
51
+ File.join(utils_path, "templates", file_path)
52
+ end
53
+
54
+ def gem_root_path
55
+ File.join(Dir.pwd, @config.gem_name)
56
+ end
57
+
58
+ def utils_path
59
+ File.dirname(__FILE__)
60
+ end
61
+
62
+ def parse_erb(content, data)
63
+ b = binding
64
+ data.each { |k, v| singleton_class.send(:define_method, k) { v } }
65
+ ERB.new(content, nil, "-").result(b)
66
+ end
67
+
68
+ def info(string)
69
+ puts string.to_s.green
70
+ end
71
+
72
+ def error(string)
73
+ return if string.blank?
74
+ puts string.to_s.red
75
+ end
76
+ end
77
+ end
@@ -1,3 +1,3 @@
1
1
  module Gemaker
2
- VERSION = "0.1.3"
3
- end
2
+ VERSION = "0.2.0"
3
+ end
metadata CHANGED
@@ -1,64 +1,230 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gemaker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
- - The Gem Maker
7
+ - Leandro Segovia
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-08-12 00:00:00.000000000 Z
11
+ date: 2017-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: power-types
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.1'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.1.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '0.1'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.1.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: commander
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '4.4'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 4.4.0
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '4.4'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 4.4.0
53
+ - !ruby/object:Gem::Dependency
54
+ name: activesupport
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '4.2'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 4.2.6
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '4.2'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 4.2.6
73
+ - !ruby/object:Gem::Dependency
74
+ name: colorize
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '0.7'
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 0.7.7
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.7'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 0.7.7
93
+ - !ruby/object:Gem::Dependency
94
+ name: artii
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '2.1'
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 2.1.1
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '2.1'
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 2.1.1
13
113
  - !ruby/object:Gem::Dependency
14
114
  name: bundler
15
115
  requirement: !ruby/object:Gem::Requirement
16
116
  requirements:
17
117
  - - "~>"
18
118
  - !ruby/object:Gem::Version
19
- version: '1.6'
119
+ version: '1.12'
20
120
  type: :development
21
121
  prerelease: false
22
122
  version_requirements: !ruby/object:Gem::Requirement
23
123
  requirements:
24
124
  - - "~>"
25
125
  - !ruby/object:Gem::Version
26
- version: '1.6'
126
+ version: '1.12'
27
127
  - !ruby/object:Gem::Dependency
28
128
  name: rake
29
129
  requirement: !ruby/object:Gem::Requirement
30
130
  requirements:
31
131
  - - "~>"
32
132
  - !ruby/object:Gem::Version
33
- version: '10.4'
133
+ version: '10.0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - "~>"
139
+ - !ruby/object:Gem::Version
140
+ version: '10.0'
141
+ - !ruby/object:Gem::Dependency
142
+ name: rspec
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - "~>"
146
+ - !ruby/object:Gem::Version
147
+ version: '3.0'
34
148
  type: :development
35
149
  prerelease: false
36
150
  version_requirements: !ruby/object:Gem::Requirement
37
151
  requirements:
38
152
  - - "~>"
39
153
  - !ruby/object:Gem::Version
40
- version: '10.4'
41
- description: gemaker is da booomb
154
+ version: '3.0'
155
+ description: Ruby CLI created to build Platanus' gems
42
156
  email:
43
- - maker@platan.us
44
- executables: []
157
+ - ldlsegovia@gmail.com
158
+ executables:
159
+ - gemaker
45
160
  extensions: []
46
161
  extra_rdoc_files: []
47
162
  files:
48
163
  - ".gitignore"
49
- - CODE_OF_CONDUCT.md
164
+ - ".rspec"
165
+ - ".ruby-version"
166
+ - ".travis.yml"
167
+ - CHANGELOG.md
50
168
  - Gemfile
51
- - Guardfile
52
169
  - LICENSE.txt
53
170
  - README.md
54
171
  - Rakefile
172
+ - bin/console
173
+ - bin/setup
174
+ - exe/gemaker
55
175
  - gemaker.gemspec
56
176
  - lib/gemaker.rb
177
+ - lib/gemaker/cli.rb
178
+ - lib/gemaker/commands/add_changelog.rb
179
+ - lib/gemaker/commands/add_cli_structure.rb
180
+ - lib/gemaker/commands/add_hound_rules.rb
181
+ - lib/gemaker/commands/add_install_generator.rb
182
+ - lib/gemaker/commands/add_license.rb
183
+ - lib/gemaker/commands/add_readme.rb
184
+ - lib/gemaker/commands/add_ruby_version.rb
185
+ - lib/gemaker/commands/base.rb
186
+ - lib/gemaker/commands/configure_git.rb
187
+ - lib/gemaker/commands/configure_test_env.rb
188
+ - lib/gemaker/commands/create_gem.rb
189
+ - lib/gemaker/commands/customize_engine.rb
190
+ - lib/gemaker/commands/customize_gemspec.rb
191
+ - lib/gemaker/commands/customize_main_lib_file.rb
192
+ - lib/gemaker/commands/customize_rakefile.rb
193
+ - lib/gemaker/config.rb
194
+ - lib/gemaker/templates/CHANGELOG.md
195
+ - lib/gemaker/templates/LICENSE.txt.erb
196
+ - lib/gemaker/templates/cli.rb.erb
197
+ - lib/gemaker/templates/engine/Guardfile
198
+ - lib/gemaker/templates/engine/README.md.erb
199
+ - lib/gemaker/templates/engine/Rakefile
200
+ - lib/gemaker/templates/engine/engine.rb.erb
201
+ - lib/gemaker/templates/engine/example_class.rb.erb
202
+ - lib/gemaker/templates/engine/gemspec.erb
203
+ - lib/gemaker/templates/engine/initializer.rb.erb
204
+ - lib/gemaker/templates/engine/install_generator.rb.erb
205
+ - lib/gemaker/templates/engine/install_usage.erb
206
+ - lib/gemaker/templates/engine/lib_main_file.rb.erb
207
+ - lib/gemaker/templates/engine/rails_helper.rb.erb
208
+ - lib/gemaker/templates/engine/rspec
209
+ - lib/gemaker/templates/engine/spec_helper.rb.erb
210
+ - lib/gemaker/templates/engine/test_example.rb.erb
211
+ - lib/gemaker/templates/exe.erb
212
+ - lib/gemaker/templates/image.png
213
+ - lib/gemaker/templates/normal/Guardfile
214
+ - lib/gemaker/templates/normal/README.md.erb
215
+ - lib/gemaker/templates/normal/Rakefile
216
+ - lib/gemaker/templates/normal/gemspec.erb
217
+ - lib/gemaker/templates/normal/spec_helper.rb.erb
218
+ - lib/gemaker/templates/normal/test_example.rb.erb
219
+ - lib/gemaker/templates/ruby-version.erb
220
+ - lib/gemaker/templates/test_helpers.rb
221
+ - lib/gemaker/templates/video.mp4
222
+ - lib/gemaker/util.rb
57
223
  - lib/gemaker/version.rb
58
224
  homepage: https://github.com/platanus/gemaker
59
- licenses:
60
- - MIT
61
- metadata: {}
225
+ licenses: []
226
+ metadata:
227
+ allowed_push_host: 'TODO: Set to ''http://mygemserver.com'''
62
228
  post_install_message:
63
229
  rdoc_options: []
64
230
  require_paths:
@@ -75,9 +241,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
241
  version: '0'
76
242
  requirements: []
77
243
  rubyforge_project:
78
- rubygems_version: 2.6.4
244
+ rubygems_version: 2.4.5
79
245
  signing_key:
80
246
  specification_version: 4
81
- summary: gemaker is da booomb
247
+ summary: Gem to build gems
82
248
  test_files: []
83
- has_rdoc: