gemaker 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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: