bundlegem 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +3 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +35 -0
  8. data/Rakefile +8 -0
  9. data/bin/bundlegem +13 -0
  10. data/bundlegem.gemspec +28 -0
  11. data/changelog +13 -0
  12. data/lib/bundlegem/cli/gem.rb +233 -0
  13. data/lib/bundlegem/cli.rb +157 -0
  14. data/lib/bundlegem/friendly_errors.rb +79 -0
  15. data/lib/bundlegem/templates/Executable +16 -0
  16. data/lib/bundlegem/templates/Executable.standalone +12 -0
  17. data/lib/bundlegem/templates/Gemfile +4 -0
  18. data/lib/bundlegem/templates/newgem/.travis.yml.tt +3 -0
  19. data/lib/bundlegem/templates/newgem/CODE_OF_CONDUCT.md.tt +13 -0
  20. data/lib/bundlegem/templates/newgem/Gemfile.tt +4 -0
  21. data/lib/bundlegem/templates/newgem/LICENSE.txt.tt +21 -0
  22. data/lib/bundlegem/templates/newgem/README.md.tt +39 -0
  23. data/lib/bundlegem/templates/newgem/Rakefile.tt +25 -0
  24. data/lib/bundlegem/templates/newgem/bin/console.tt +14 -0
  25. data/lib/bundlegem/templates/newgem/bin/setup.tt +7 -0
  26. data/lib/bundlegem/templates/newgem/changelog.tt +7 -0
  27. data/lib/bundlegem/templates/newgem/exe/newgem.tt +3 -0
  28. data/lib/bundlegem/templates/newgem/ext/newgem/extconf.rb.tt +3 -0
  29. data/lib/bundlegem/templates/newgem/ext/newgem/newgem.c.tt +9 -0
  30. data/lib/bundlegem/templates/newgem/ext/newgem/newgem.h.tt +6 -0
  31. data/lib/bundlegem/templates/newgem/gitignore.tt +16 -0
  32. data/lib/bundlegem/templates/newgem/lib/newgem/version.rb.tt +7 -0
  33. data/lib/bundlegem/templates/newgem/lib/newgem.rb.tt +12 -0
  34. data/lib/bundlegem/templates/newgem/newgem.gemspec.tt +39 -0
  35. data/lib/bundlegem/templates/newgem/rspec.tt +2 -0
  36. data/lib/bundlegem/templates/newgem/spec/newgem_spec.rb.tt +11 -0
  37. data/lib/bundlegem/templates/newgem/spec/spec_helper.rb.tt +2 -0
  38. data/lib/bundlegem/templates/newgem/test/minitest_helper.rb.tt +4 -0
  39. data/lib/bundlegem/templates/newgem/test/test_newgem.rb.tt +11 -0
  40. data/lib/bundlegem/version.rb +3 -0
  41. data/lib/bundlegem.rb +24 -0
  42. data/spec/bundlegem_spec.rb +13 -0
  43. data/spec/spec_helper.rb +4 -0
  44. metadata +159 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e138baceb92d68e4aef8260fbd3a849373071f72
4
+ data.tar.gz: 251fe7b0a55365ec2276ae2b65b6f8b4ed0ecc1e
5
+ SHA512:
6
+ metadata.gz: 30c88d59a926fcee22d6c65f97f5d63c1cefd91ce309f7d7fb46a1b703c757bfe950d2bf1c5190582c2596a08dd044ee01f7f0474fe054e606b2ee53711752c9
7
+ data.tar.gz: f54f165f577aa0a245e2c51ef8e980655fa0ef689f4e503175e43df60caa9a42397aac9df21e40162e8c5154321667162e6c3708db0b85cfc232dc8f39295497
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.1.3
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in bundlegem.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2015 TheNotary
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,35 @@
1
+
2
+ # BundleGem: a gem project genorator with user defined templates
3
+
4
+ I've more or less taken the code out of Bundler's `bundle gem` command, expanded on it and made it available as this repos.
5
+
6
+ ### Installation and usage
7
+
8
+ First install it:
9
+ ```
10
+ gem install bundlegem
11
+ ```
12
+
13
+ Then create a new project structure:
14
+ ```
15
+ $ bundlegem template new
16
+ Specify a name for your gem template: my_service
17
+ Cloning base project structure into ~/.bundlegem/templates/my_service
18
+ ...
19
+ Complete!
20
+ ```
21
+
22
+ You'll now find a project skeleton in ~/.bundlegem/templates/my_service that you can customize to your liking.
23
+
24
+
25
+ Finally, create a new gem using your new gem template:
26
+ ```
27
+ $ cd /tmp
28
+ $ bundlegem project_name -t my_service
29
+ ```
30
+
31
+ ### Contributing
32
+
33
+ Please feel free to speak up using the issue section if there's anything on your mind :)
34
+ Do the usual fork routine and issue a pull request by all means.
35
+
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ require 'bundler'
2
+ require "bundler/gem_tasks"
3
+ require "rspec/core/rake_task"
4
+
5
+ RSpec::Core::RakeTask.new(:spec)
6
+
7
+ task :default => :spec
8
+
data/bin/bundlegem ADDED
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Exit cleanly from an early interrupt
4
+ Signal.trap("INT") { exit 1 }
5
+
6
+ require 'bundler'
7
+ require 'bundlegem'
8
+
9
+ # require 'bundlergem/friendly_errors'
10
+
11
+ require 'bundlegem/cli'
12
+ Bundlegem::CLI.start(ARGV, :debug => true)
13
+
data/bundlegem.gemspec ADDED
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'bundlegem/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "bundlegem"
8
+ spec.version = Bundlegem::VERSION
9
+ spec.authors = ["TheNotary"]
10
+ spec.email = ["no@mail.plz"]
11
+ spec.summary = %q{this gem makes more gems!}
12
+ spec.description = %q{ I KNOW! ISN'T THAT LIKE WISHING FOR MORE WISHES!}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "thor", "0.19.1"
22
+ spec.add_dependency "bundler"
23
+
24
+ #spec.add_development_dependency "bundler", "~> 1.7"
25
+ spec.add_development_dependency "rake", "~> 10.0"
26
+ spec.add_development_dependency "rspec"
27
+ spec.add_development_dependency "pry"
28
+ end
data/changelog ADDED
@@ -0,0 +1,13 @@
1
+ ** 0.0.x **
2
+ - Ability to load templates from github
3
+ - Better syntax of bundlegem gem_name -t template_name
4
+ - Default templates
5
+ - List templates (with descriptions)
6
+ - Restore the original UI that was in bundler
7
+ - Cleanness and goodness
8
+ - Soapy bubbles that smell like spring time in a box marked surplus kittens
9
+
10
+ ** 0.0.1 **
11
+ - Very basic prototype that allows you to specify templates in
12
+ ~/.bundlegem/templates
13
+
@@ -0,0 +1,233 @@
1
+ require 'pathname'
2
+
3
+ module Bundlegem
4
+ class CLI::Gem
5
+ attr_reader :options, :gem_name, :thor, :name, :target
6
+
7
+ def initialize(options, gem_name, thor)
8
+ @options = options
9
+ @gem_name = resolve_name(gem_name)
10
+ @thor = thor
11
+
12
+ @name = @gem_name
13
+ @target = Pathname.pwd.join(gem_name)
14
+
15
+ validate_ext_name if options[:ext]
16
+ end
17
+
18
+ def run
19
+ # Bundler.ui.confirm "Creating gem '#{name}'..."
20
+
21
+ underscored_name = name.tr('-', '_')
22
+ namespaced_path = name.tr('-', '/')
23
+ constant_name = name.split('_').map{|p| p[0..0].upcase + p[1..-1] unless p.empty?}.join
24
+ constant_name = constant_name.split('-').map{|q| q[0..0].upcase + q[1..-1] }.join('::') if constant_name =~ /-/
25
+ constant_array = constant_name.split('::')
26
+ git_user_name = `git config user.name`.chomp
27
+ git_user_email = `git config user.email`.chomp
28
+
29
+ config = {
30
+ :name => name,
31
+ :underscored_name => underscored_name,
32
+ :namespaced_path => namespaced_path,
33
+ :makefile_path => "#{underscored_name}/#{underscored_name}",
34
+ :constant_name => constant_name,
35
+ :constant_array => constant_array,
36
+ :author => git_user_name.empty? ? "TODO: Write your name" : git_user_name,
37
+ :email => git_user_email.empty? ? "TODO: Write your email address" : git_user_email,
38
+ :template => options[:template],
39
+ :test => options[:test],
40
+ :ext => options[:ext],
41
+ :bin => options[:bin],
42
+ :bundler_version => bundler_dependency_version
43
+ }
44
+ ensure_safe_gem_name(name, constant_array)
45
+
46
+ # Hmmm... generate dynamically instead?
47
+ templates = {
48
+ "Gemfile.tt" => "Gemfile",
49
+ "changelog.tt" => "changelog",
50
+ "gitignore.tt" => ".gitignore",
51
+ "lib/newgem.rb.tt" => "lib/#{namespaced_path}.rb",
52
+ "lib/newgem/version.rb.tt" => "lib/#{namespaced_path}/version.rb",
53
+ "newgem.gemspec.tt" => "#{name}.gemspec",
54
+ "Rakefile.tt" => "Rakefile",
55
+ "README.md.tt" => "README.md",
56
+ "bin/console.tt" => "bin/console",
57
+ "bin/setup.tt" => "bin/setup"
58
+ }
59
+
60
+
61
+ templates = dynamically_generate_templates || templates
62
+
63
+
64
+
65
+ if ask_and_set(:coc, "Do you want to include a code of conduct in gems you generate?",
66
+ "Codes of conduct can increase contributions to your project by contributors who " \
67
+ "prefer collaborative, safe spaces. You can read more about the code of conduct at " \
68
+ "contributor-covenant.org. Having a code of conduct means agreeing to the responsibility " \
69
+ "of enforcing it, so be sure that you are prepared to do that. For suggestions about " \
70
+ "how to enforce codes of conduct, see bit.ly/coc-enforcement."
71
+ )
72
+ templates.merge!("CODE_OF_CONDUCT.md.tt" => "CODE_OF_CONDUCT.md")
73
+ end
74
+
75
+ if ask_and_set(:mit, "Do you want to license your code permissively under the MIT license?",
76
+ "This means that any other developer or company will be legally allowed to use your code " \
77
+ "for free as long as they admit you created it. You can read more about the MIT license " \
78
+ "at choosealicense.com/licenses/mit."
79
+ )
80
+ config[:mit] = true
81
+ templates.merge!("LICENSE.txt.tt" => "LICENSE.txt")
82
+ end
83
+
84
+ if test_framework = ask_and_set_test_framework
85
+ templates.merge!(".travis.yml.tt" => ".travis.yml")
86
+
87
+ case test_framework
88
+ when 'rspec'
89
+ templates.merge!(
90
+ "rspec.tt" => ".rspec",
91
+ "spec/spec_helper.rb.tt" => "spec/spec_helper.rb",
92
+ "spec/newgem_spec.rb.tt" => "spec/#{namespaced_path}_spec.rb"
93
+ )
94
+ when 'minitest'
95
+ templates.merge!(
96
+ "test/minitest_helper.rb.tt" => "test/minitest_helper.rb",
97
+ "test/test_newgem.rb.tt" => "test/test_#{namespaced_path}.rb"
98
+ )
99
+ end
100
+ end
101
+
102
+ templates.merge!("exe/newgem.tt" => "exe/#{name}") if options[:bin]
103
+
104
+ if options[:ext]
105
+ templates.merge!(
106
+ "ext/newgem/extconf.rb.tt" => "ext/#{name}/extconf.rb",
107
+ "ext/newgem/newgem.h.tt" => "ext/#{name}/#{underscored_name}.h",
108
+ "ext/newgem/newgem.c.tt" => "ext/#{name}/#{underscored_name}.c"
109
+ )
110
+ end
111
+
112
+
113
+ template_src = match_template_src
114
+
115
+ templates.each do |src, dst|
116
+ thor.template("#{template_src}/#{src}", target.join(dst), config)
117
+ end
118
+
119
+ # Bundler.ui.info "Initializing git repo in #{target}"
120
+ Dir.chdir(target) { `git init`; `git add .` }
121
+
122
+ if options[:edit]
123
+ # Open gemspec in editor
124
+ thor.run("#{options["edit"]} \"#{target.join("#{name}.gemspec")}\"")
125
+ end
126
+ end
127
+
128
+ private
129
+
130
+ def dynamically_generate_templates
131
+ return nil if options["template"].nil?
132
+
133
+ template_src = get_template_src
134
+
135
+ templates = {}
136
+ Dir.glob("#{template_src}/**/*.tt").each do |f|
137
+ base_path = f[template_src.length+1..-1]
138
+ templates.merge!(base_path => base_path.gsub(/\.tt$/, "").gsub('#{name}', "#{name}") )
139
+ end
140
+
141
+ templates
142
+ end
143
+
144
+ def match_template_src
145
+ template_src = get_template_src
146
+
147
+ unless File.exists?(template_src)
148
+ # else message the user that the template could not be found
149
+ Bundler.ui.error "Could not find template folder #{options["template"]} in `~/.bundle/gem_templates/`. Please check to make sure your desired template exists."
150
+ exit 1
151
+ end
152
+
153
+ template_src
154
+ end
155
+
156
+ def get_template_src
157
+ if options["template"].nil?
158
+ gem_template_location = ""
159
+ gem_template = "newgem"
160
+ template_src = "#{gem_template_location}#{gem_template}"
161
+ else
162
+ gem_template_location = File.expand_path("~/.bundle/gem_templates") +"/"
163
+ gem_template = options["template"]
164
+ template_src = "#{gem_template_location}#{gem_template}"
165
+ end
166
+ end
167
+
168
+ def resolve_name(name)
169
+ Pathname.pwd.join(name).basename.to_s
170
+ end
171
+
172
+ def ask_and_set(key, header, message)
173
+ choice = options[key] || Bundler.settings["gem.#{key}"]
174
+
175
+ if choice.nil?
176
+ Bundler.ui.confirm header
177
+ choice = (Bundler.ui.ask("#{message} y/(n):") =~ /y|yes/)
178
+ Bundler.settings.set_global("gem.#{key}", choice)
179
+ end
180
+
181
+ choice
182
+ end
183
+
184
+ def validate_ext_name
185
+ return unless gem_name.index('-')
186
+
187
+ Bundler.ui.error "You have specified a gem name which does not conform to the \n" \
188
+ "naming guidelines for C extensions. For more information, \n" \
189
+ "see the 'Extension Naming' section at the following URL:\n" \
190
+ "http://guides.rubygems.org/gems-with-extensions/\n"
191
+ exit 1
192
+ end
193
+
194
+ def ask_and_set_test_framework
195
+ test_framework = options[:test] || Bundler.settings["gem.test"]
196
+
197
+ if test_framework.nil?
198
+ Bundler.ui.confirm "Do you want to generate tests with your gem?"
199
+ result = Bundler.ui.ask "Type 'rspec' or 'minitest' to generate those test files now and " \
200
+ "in the future. rspec/minitest/(none):"
201
+ if result =~ /rspec|minitest/
202
+ test_framework = result
203
+ else
204
+ test_framework = false
205
+ end
206
+ end
207
+
208
+ if Bundler.settings["gem.test"].nil?
209
+ Bundler.settings.set_global("gem.test", test_framework)
210
+ end
211
+
212
+ test_framework
213
+ end
214
+
215
+ def bundler_dependency_version
216
+ v = Gem::Version.new(Bundler::VERSION)
217
+ req = v.segments[0..1]
218
+ req << 'a' if v.prerelease?
219
+ req.join(".")
220
+ end
221
+
222
+ def ensure_safe_gem_name name, constant_array
223
+ if name =~ /^\d/
224
+ Bundler.ui.error "Invalid gem name #{name} Please give a name which does not start with numbers."
225
+ exit 1
226
+ elsif Object.const_defined?(constant_array.first)
227
+ Bundler.ui.error "Invalid gem name #{name} constant #{constant_array.join("::")} is already in use. Please choose another gem name."
228
+ exit 1
229
+ end
230
+ end
231
+
232
+ end
233
+ end
@@ -0,0 +1,157 @@
1
+ require 'bundlegem'
2
+ require 'thor'
3
+
4
+ module Bundlegem
5
+ class CLI < Thor
6
+ include Thor::Actions
7
+ AUTO_INSTALL_CMDS = %w[show binstubs outdated exec open console licenses clean]
8
+
9
+ def self.start(*)
10
+ super
11
+ rescue Exception => e
12
+ # Bundlegem.ui = UI::Shell.new
13
+ raise e
14
+ ensure
15
+ # Bundlegem.cleanup
16
+ end
17
+
18
+ def initialize(*args)
19
+ super
20
+ current_cmd = args.last[:current_command].name
21
+ # custom_gemfile = options[:gemfile] || Bundlegem.settings[:gemfile]
22
+ # ENV['BUNDLE_GEMFILE'] = File.expand_path(custom_gemfile) if custom_gemfile
23
+ # Bundlegem::Retry.attempts = options[:retry] || Bundlegem.settings[:retry] || Bundlegem::Retry::DEFAULT_ATTEMPTS
24
+ # Bundlegem.rubygems.ui = UI::RGProxy.new(Bundlegem.ui)
25
+ # auto_install if AUTO_INSTALL_CMDS.include?(current_cmd)
26
+ rescue UnknownArgumentError => e
27
+ raise InvalidOption, e.message
28
+ ensure
29
+ self.options ||= {}
30
+ # Bundlegem.ui = UI::Shell.new(options)
31
+ # Bundlegem.ui.level = "debug" if options["verbose"]
32
+ end
33
+
34
+ check_unknown_options!(:except => [:config, :exec])
35
+ stop_on_unknown_option! :exec
36
+
37
+ default_task :install
38
+ class_option "no-color", :type => :boolean, :desc => "Disable colorization in output"
39
+ class_option "retry", :type => :numeric, :aliases => "-r", :banner => "NUM",
40
+ :desc => "Specify the number of times you wish to attempt network commands"
41
+ class_option "verbose", :type => :boolean, :desc => "Enable verbose output mode", :aliases => "-V"
42
+
43
+ def help(cli = nil)
44
+ case cli
45
+ when "gemfile" then command = "gemfile.5"
46
+ when nil then command = "bundle"
47
+ else command = "bundle-#{cli}"
48
+ end
49
+
50
+ manpages = %w(
51
+ bundle
52
+ bundle-config
53
+ bundle-exec
54
+ bundle-install
55
+ bundle-package
56
+ bundle-update
57
+ bundle-platform
58
+ gemfile.5)
59
+
60
+ if manpages.include?(command)
61
+ root = File.expand_path("../man", __FILE__)
62
+
63
+ if Bundlegem.which("man") && root !~ %r{^file:/.+!/META-INF/jruby.home/.+}
64
+ Kernel.exec "man #{root}/#{command}"
65
+ else
66
+ puts File.read("#{root}/#{command}.txt")
67
+ end
68
+ else
69
+ super
70
+ end
71
+ end
72
+
73
+ def self.handle_no_command_error(command, has_namespace = $thor_runner)
74
+ return super unless command_path = Bundlegem.which("Bundlegem-#{command}")
75
+
76
+ Kernel.exec(command_path, *ARGV[1..-1])
77
+ end
78
+
79
+ desc "init [OPTIONS]", "Generates a Gemfile into the current working directory"
80
+ long_desc <<-D
81
+ Init generates a default Gemfile in the current working directory. When adding a
82
+ Gemfile to a gem with a gemspec, the --gemspec option will automatically add each
83
+ dependency listed in the gemspec file to the newly created Gemfile.
84
+ D
85
+ method_option "gemspec", :type => :string, :banner => "Use the specified .gemspec to create the Gemfile"
86
+ def init
87
+ require 'bundlegem/cli/init'
88
+ Init.new(options.dup).run
89
+ end
90
+
91
+
92
+
93
+ desc "version", "Prints the bundler's version information"
94
+ def version
95
+ Bundler.ui.info "Bundler version #{Bundler::VERSION}"
96
+ end
97
+ map %w(-v --version) => :version
98
+
99
+
100
+ desc "gem GEM [OPTIONS]", "Creates a skeleton for creating a rubygem"
101
+ method_option :bin, :type => :boolean, :default => false, :aliases => '-b', :desc => "Generate a binary for your library. Set a default with `bundle config gem.mit true`."
102
+ method_option :coc, :type => :boolean, :desc => "Generate a code of conduct file. Set a default with `bundle config gem.coc true`."
103
+ method_option :edit, :type => :string, :aliases => "-e", :required => false, :banner => "EDITOR",
104
+ :lazy_default => [ENV['BUNDLER_EDITOR'], ENV['VISUAL'], ENV['EDITOR']].find{|e| !e.nil? && !e.empty? },
105
+ :desc => "Open generated gemspec in the specified editor (defaults to $EDITOR or $BUNDLER_EDITOR)"
106
+ method_option :ext, :type => :boolean, :default => false, :desc => "Generate the boilerplate for C extension code"
107
+ method_option :mit, :type => :boolean, :desc => "Generate an MIT license file"
108
+ method_option :test, :type => :string, :lazy_default => 'rspec', :aliases => '-t', :banner => "rspec",
109
+ :desc => "Generate a test directory for your library, either rspec or minitest. Set a default with `bundle config gem.test rspec`."
110
+ method_option :template, :type => :string, :lazy_default => "newgem", :aliases => '-u', :banner => "default", :desc => "Generate a gem based on the user's predefined template."
111
+ def gem(name)
112
+ require 'bundlegem/cli/gem'
113
+ Gem.new(options, name, self).run
114
+ end
115
+
116
+ def self.source_root
117
+ File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
118
+ end
119
+
120
+
121
+ desc "platform [OPTIONS]", "Displays platform compatibility information"
122
+ method_option "ruby", :type => :boolean, :default => false, :banner =>
123
+ "only display ruby related platform information"
124
+ def platform
125
+ require 'bundlegem/cli/platform'
126
+ Platform.new(options).run
127
+ end
128
+
129
+
130
+ desc "env", "Print information about the environment Bundler is running under"
131
+ def env
132
+ Env.new.write($stdout)
133
+ end
134
+
135
+ private
136
+
137
+ # Automatically invoke `bundle install` and resume if
138
+ # Bundler.settings[:auto_install] exists. This is set through config cmd
139
+ # `bundle config auto_install 1`.
140
+ #
141
+ # Note that this method `nil`s out the global Definition object, so it
142
+ # should be called first, before you instantiate anything like an
143
+ # `Installer` that'll keep a reference to the old one instead.
144
+ def auto_install
145
+ return unless Bundler.settings[:auto_install]
146
+
147
+ begin
148
+ Bundler.definition.specs
149
+ rescue GemNotFound
150
+ Bundler.ui.info "Automatically installing missing gems."
151
+ Bundler.reset!
152
+ invoke :install, []
153
+ Bundler.reset!
154
+ end
155
+ end
156
+ end
157
+ end
@@ -0,0 +1,79 @@
1
+ # encoding: utf-8
2
+ require "cgi"
3
+ require "bundlegem/vendored_thor"
4
+
5
+ module Bundlegem
6
+ def self.with_friendly_errors
7
+ yield
8
+ rescue Bundlegem::Dsl::DSLError => e
9
+ Bundlegem.ui.error e.message
10
+ exit e.status_code
11
+ rescue Bundlegem::BundlegemError => e
12
+ Bundlegem.ui.error e.message, :wrap => true
13
+ Bundlegem.ui.trace e
14
+ exit e.status_code
15
+ rescue Thor::AmbiguousTaskError => e
16
+ Bundlegem.ui.error e.message
17
+ exit 15
18
+ rescue Thor::UndefinedTaskError => e
19
+ Bundlegem.ui.error e.message
20
+ exit 15
21
+ rescue Thor::Error => e
22
+ Bundlegem.ui.error e.message
23
+ exit 1
24
+ rescue LoadError => e
25
+ raise e unless e.message =~ /cannot load such file -- openssl|openssl.so|libcrypto.so/
26
+ Bundlegem.ui.error "\nCould not load OpenSSL."
27
+ Bundlegem.ui.warn <<-WARN, :wrap => true
28
+ You must recompile Ruby with OpenSSL support or change the sources in your \
29
+ Gemfile from 'https' to 'http'. Instructions for compiling with OpenSSL \
30
+ using RVM are available at http://rvm.io/packages/openssl.
31
+ WARN
32
+ Bundlegem.ui.trace e
33
+ exit 1
34
+ rescue Interrupt => e
35
+ Bundlegem.ui.error "\nQuitting..."
36
+ Bundlegem.ui.trace e
37
+ exit 1
38
+ rescue SystemExit => e
39
+ exit e.status
40
+ rescue Exception => e
41
+ request_issue_report_for(e)
42
+ exit 1
43
+ end
44
+
45
+ def self.request_issue_report_for(e)
46
+ Bundlegem.ui.info <<-EOS.gsub(/^ {6}/, '')
47
+ #{'――― ERROR REPORT TEMPLATE ―――――――――――――――――――――――――――――――――――――――――――――――――――――――'}
48
+ - What did you do?
49
+ - What did you expect to happen?
50
+ - What happened instead?
51
+
52
+ Error details
53
+
54
+ #{e.class}: #{e.message}
55
+ #{e.backtrace.join("\n ")}
56
+
57
+ #{Bundlegem::Env.new.report(:print_gemfile => false).gsub(/\n/, "\n ").strip}
58
+ #{'――― TEMPLATE END ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――'}
59
+
60
+ EOS
61
+
62
+ Bundlegem.ui.error "Unfortunately, an unexpected error occurred, and Bundlegem cannot continue."
63
+
64
+ Bundlegem.ui.warn <<-EOS.gsub(/^ {6}/, '')
65
+
66
+ First, try this link to see if there are any existing issue reports for this error:
67
+ #{issues_url(e)}
68
+
69
+ If there aren't any reports for this error yet, please create copy and paste the report template above into a new issue. Don't forget to anonymize any private data! The new issue form is located at:
70
+ TODO: Change the link that was here
71
+ EOS
72
+ end
73
+
74
+ def self.issues_url(exception)
75
+ 'TODO: Change the link that was here' \
76
+ "#{CGI.escape(exception.message)}&type=Issues"
77
+ end
78
+
79
+ end
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env <%= Bundler.settings[:shebang] || RbConfig::CONFIG['ruby_install_name'] %>
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application '<%= executable %>' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../<%= relative_gemfile_path %>",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('<%= spec.name %>', '<%= executable %>')
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env <%= Bundler.settings[:shebang] || RbConfig::CONFIG['ruby_install_name'] %>
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application '<%= executable %>' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ $:.unshift File.expand_path '../<%= standalone_path %>', __FILE__
10
+
11
+ require 'bundler/setup'
12
+ load File.expand_path '../<%= executable_path %>', __FILE__
@@ -0,0 +1,4 @@
1
+ # A sample Gemfile
2
+ source "https://rubygems.org"
3
+
4
+ # gem "rails"
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - <%= RUBY_VERSION %>
@@ -0,0 +1,13 @@
1
+ # Contributor Code of Conduct
2
+
3
+ As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
4
+
5
+ We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, age, or religion.
6
+
7
+ Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
8
+
9
+ Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team.
10
+
11
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.
12
+
13
+ This Code of Conduct is adapted from the [Contributor Covenant](http:contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/)
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in <%=config[:name]%>.gemspec
4
+ gemspec
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) <%=Time.now.year%> <%=config[:author]%>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,39 @@
1
+ # <%=config[:constant_name]%>
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/<%=config[:namespaced_path]%>`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem '<%=config[:name]%>'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install <%=config[:name]%>
22
+
23
+ ## Usage
24
+
25
+ TODO: Write usage instructions here
26
+
27
+ ## Development
28
+
29
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.<% if config[:bin] %> Run `bundle exec <%= config[:name] %>` to use the code located in this directory, ignoring other installed copies of this gem.<% end %>
30
+
31
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
+
33
+ ## Contributing
34
+
35
+ 1. Fork it ( https://github.com/[my-github-username]/<%=config[:name]%>/fork )
36
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
37
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
38
+ 4. Push to the branch (`git push origin my-new-feature`)
39
+ 5. Create a new Pull Request
@@ -0,0 +1,25 @@
1
+ require "bundler/gem_tasks"
2
+ <% if config[:test] == 'minitest' -%>
3
+ require "rake/testtask"
4
+
5
+ Rake::TestTask.new(:test) do |t|
6
+ t.libs << "test"
7
+ end
8
+
9
+ task :default => :test
10
+ <% elsif config[:test] == 'rspec' -%>
11
+ require "rspec/core/rake_task"
12
+
13
+ RSpec::Core::RakeTask.new(:spec)
14
+
15
+ task :default => :spec
16
+ <% end -%>
17
+ <% if config[:ext] -%>
18
+ require "rake/extensiontask"
19
+
20
+ task :build => :compile
21
+
22
+ Rake::ExtensionTask.new("<%=config[:underscored_name]%>") do |ext|
23
+ ext.lib_dir = "lib/<%=config[:namespaced_path]%>"
24
+ end
25
+ <% end -%>
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "<%= config[:namespaced_path] %>"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,7 @@
1
+ ** 0.0.x **
2
+ TODO: List off what features you'll be including at some point in the
3
+ future.
4
+
5
+ ** 0.0.1 **
6
+ TODO: List off what features you'll be including in the first release
7
+
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "<%= config[:namespaced_path] %>"
@@ -0,0 +1,3 @@
1
+ require "mkmf"
2
+
3
+ create_makefile(<%= config[:makefile_path].inspect %>)
@@ -0,0 +1,9 @@
1
+ #include "<%=config[:underscored_name]%>.h"
2
+
3
+ VALUE rb_m<%=config[:constant_array].join%>;
4
+
5
+ void
6
+ Init_<%=config[:underscored_name]%>(void)
7
+ {
8
+ rb_m<%=config[:constant_array].join%> = rb_define_module(<%=config[:constant_name].inspect%>);
9
+ }
@@ -0,0 +1,6 @@
1
+ #ifndef <%=config[:underscored_name].upcase%>_H
2
+ #define <%=config[:underscored_name].upcase%>_H 1
3
+
4
+ #include "ruby.h"
5
+
6
+ #endif /* <%=config[:underscored_name].upcase%>_H */
@@ -0,0 +1,16 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ <%- if config[:ext] -%>
11
+ *.bundle
12
+ *.so
13
+ *.o
14
+ *.a
15
+ mkmf.log
16
+ <%- end -%>
@@ -0,0 +1,7 @@
1
+ <%- config[:constant_array].each_with_index do |c,i| -%>
2
+ <%= ' '*i %>module <%= c %>
3
+ <%- end -%>
4
+ <%= ' '*config[:constant_array].size %>VERSION = "0.1.0"
5
+ <%- (config[:constant_array].size-1).downto(0) do |i| -%>
6
+ <%= ' '*i %>end
7
+ <%- end -%>
@@ -0,0 +1,12 @@
1
+ require "<%=config[:namespaced_path]%>/version"
2
+ <%- if config[:ext] -%>
3
+ require "<%=config[:namespaced_path]%>/<%=config[:underscored_name]%>"
4
+ <%- end -%>
5
+
6
+ <%- config[:constant_array].each_with_index do |c,i| -%>
7
+ <%= ' '*i %>module <%= c %>
8
+ <%- end -%>
9
+ <%= ' '*config[:constant_array].size %># Your code goes here...
10
+ <%- (config[:constant_array].size-1).downto(0) do |i| -%>
11
+ <%= ' '*i %>end
12
+ <%- end -%>
@@ -0,0 +1,39 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require '<%=config[:namespaced_path]%>/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = <%=config[:name].inspect%>
8
+ spec.version = <%=config[:constant_name]%>::VERSION
9
+ spec.authors = [<%=config[:author].inspect%>]
10
+ spec.email = [<%=config[:email].inspect%>]
11
+
12
+ spec.summary = %q{TODO: Write a short summary, because Rubygems requires one.}
13
+ spec.description = %q{TODO: Write a longer description or delete this line.}
14
+ spec.homepage = "TODO: Put your gem's website or public repo URL here."
15
+ <%- if config[:mit] -%>
16
+ spec.license = "MIT"
17
+ <%- end -%>
18
+
19
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
20
+ spec.bindir = "exe"
21
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
+ spec.require_paths = ["lib"]
23
+ <%- if config[:ext] -%>
24
+ spec.extensions = ["ext/<%=config[:underscored_name]%>/extconf.rb"]
25
+ <%- end -%>
26
+
27
+ if spec.respond_to?(:metadata)
28
+ spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com' to prevent pushes to rubygems.org, or delete to allow pushes to any server."
29
+ end
30
+
31
+ spec.add_development_dependency "bundler", "~> <%= config[:bundler_version] %>"
32
+ spec.add_development_dependency "rake", "~> 10.0"
33
+ <%- if config[:ext] -%>
34
+ spec.add_development_dependency "rake-compiler"
35
+ <%- end -%>
36
+ <%- if config[:test] && config[:test] != "false" -%>
37
+ spec.add_development_dependency "<%=config[:test]%>"
38
+ <%- end -%>
39
+ end
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe <%= config[:constant_name] %> do
4
+ it 'has a version number' do
5
+ expect(<%= config[:constant_name] %>::VERSION).not_to be nil
6
+ end
7
+
8
+ it 'does something useful' do
9
+ expect(false).to eq(true)
10
+ end
11
+ end
@@ -0,0 +1,2 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+ require '<%= config[:namespaced_path] %>'
@@ -0,0 +1,4 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+ require '<%= config[:namespaced_path] %>'
3
+
4
+ require 'minitest/autorun'
@@ -0,0 +1,11 @@
1
+ require 'minitest_helper'
2
+
3
+ class Test<%= config[:constant_name] %> < Minitest::Test
4
+ def test_that_it_has_a_version_number
5
+ refute_nil ::<%= config[:constant_name] %>::VERSION
6
+ end
7
+
8
+ def test_it_does_something_useful
9
+ assert false
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ module Bundlegem
2
+ VERSION = "0.0.1"
3
+ end
data/lib/bundlegem.rb ADDED
@@ -0,0 +1,24 @@
1
+ require "bundlegem/version"
2
+
3
+
4
+
5
+
6
+ module Bundlegem
7
+ # Your code goes here...
8
+
9
+ class << self
10
+ def which(executable)
11
+ if File.file?(executable) && File.executable?(executable)
12
+ executable
13
+ elsif ENV['PATH']
14
+ path = ENV['PATH'].split(File::PATH_SEPARATOR).find do |p|
15
+ abs_path = File.join(p, executable)
16
+ File.file?(abs_path) && File.executable?(abs_path)
17
+ end
18
+ path && File.expand_path(executable, path)
19
+ end
20
+ end
21
+
22
+ end
23
+
24
+ end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe Bundlegem do
4
+ it 'has a version number' do
5
+ expect(Bundlegem::VERSION).not_to be nil
6
+ end
7
+
8
+ it 'does something useful' do
9
+ require 'bundlegem/cli'
10
+ binding.pry
11
+
12
+ end
13
+ end
@@ -0,0 +1,4 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+ require 'bundlegem'
3
+
4
+ require 'pry'
metadata ADDED
@@ -0,0 +1,159 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bundlegem
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - TheNotary
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-03-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 0.19.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 0.19.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: " I KNOW! ISN'T THAT LIKE WISHING FOR MORE WISHES!"
84
+ email:
85
+ - no@mail.plz
86
+ executables:
87
+ - bundlegem
88
+ extensions: []
89
+ extra_rdoc_files: []
90
+ files:
91
+ - ".gitignore"
92
+ - ".rspec"
93
+ - ".travis.yml"
94
+ - Gemfile
95
+ - LICENSE.txt
96
+ - README.md
97
+ - Rakefile
98
+ - bin/bundlegem
99
+ - bundlegem.gemspec
100
+ - changelog
101
+ - lib/bundlegem.rb
102
+ - lib/bundlegem/cli.rb
103
+ - lib/bundlegem/cli/gem.rb
104
+ - lib/bundlegem/friendly_errors.rb
105
+ - lib/bundlegem/templates/Executable
106
+ - lib/bundlegem/templates/Executable.standalone
107
+ - lib/bundlegem/templates/Gemfile
108
+ - lib/bundlegem/templates/newgem/.travis.yml.tt
109
+ - lib/bundlegem/templates/newgem/CODE_OF_CONDUCT.md.tt
110
+ - lib/bundlegem/templates/newgem/Gemfile.tt
111
+ - lib/bundlegem/templates/newgem/LICENSE.txt.tt
112
+ - lib/bundlegem/templates/newgem/README.md.tt
113
+ - lib/bundlegem/templates/newgem/Rakefile.tt
114
+ - lib/bundlegem/templates/newgem/bin/console.tt
115
+ - lib/bundlegem/templates/newgem/bin/setup.tt
116
+ - lib/bundlegem/templates/newgem/changelog.tt
117
+ - lib/bundlegem/templates/newgem/exe/newgem.tt
118
+ - lib/bundlegem/templates/newgem/ext/newgem/extconf.rb.tt
119
+ - lib/bundlegem/templates/newgem/ext/newgem/newgem.c.tt
120
+ - lib/bundlegem/templates/newgem/ext/newgem/newgem.h.tt
121
+ - lib/bundlegem/templates/newgem/gitignore.tt
122
+ - lib/bundlegem/templates/newgem/lib/newgem.rb.tt
123
+ - lib/bundlegem/templates/newgem/lib/newgem/version.rb.tt
124
+ - lib/bundlegem/templates/newgem/newgem.gemspec.tt
125
+ - lib/bundlegem/templates/newgem/rspec.tt
126
+ - lib/bundlegem/templates/newgem/spec/newgem_spec.rb.tt
127
+ - lib/bundlegem/templates/newgem/spec/spec_helper.rb.tt
128
+ - lib/bundlegem/templates/newgem/test/minitest_helper.rb.tt
129
+ - lib/bundlegem/templates/newgem/test/test_newgem.rb.tt
130
+ - lib/bundlegem/version.rb
131
+ - spec/bundlegem_spec.rb
132
+ - spec/spec_helper.rb
133
+ homepage: ''
134
+ licenses:
135
+ - MIT
136
+ metadata: {}
137
+ post_install_message:
138
+ rdoc_options: []
139
+ require_paths:
140
+ - lib
141
+ required_ruby_version: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ required_rubygems_version: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ requirements: []
152
+ rubyforge_project:
153
+ rubygems_version: 2.4.4
154
+ signing_key:
155
+ specification_version: 4
156
+ summary: this gem makes more gems!
157
+ test_files:
158
+ - spec/bundlegem_spec.rb
159
+ - spec/spec_helper.rb