bundlegem 0.0.13 → 0.0.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/bundlegem.gemspec +3 -3
- data/changelog +4 -0
- data/lib/bundlegem/cli/gem.rb +3 -3
- data/lib/bundlegem/configurator.rb +1 -1
- data/lib/bundlegem/template_manager.rb +2 -2
- data/lib/bundlegem/templates/cli_gem/#{name}.gemspec.tt +20 -8
- data/lib/bundlegem/templates/cli_gem/LICENSE.txt.tt +2 -20
- data/lib/bundlegem/templates/cli_gem/README.md.tt +20 -21
- data/lib/bundlegem/templates/cli_gem/Rakefile.tt +27 -2
- data/lib/bundlegem/templates/cli_gem/exe/#{name}.tt +8 -1
- data/lib/bundlegem/templates/cli_gem/lib/#{name}/config.rb.tt +40 -0
- data/lib/bundlegem/templates/cli_gem/lib/#{name}/constants.rb.tt +9 -0
- data/lib/bundlegem/templates/cli_gem/lib/#{name}.rb.tt +18 -1
- data/lib/bundlegem/templates/cli_gem/spec/#{name}/config_spec.rb.tt +25 -0
- data/lib/bundlegem/templates/cli_gem/spec/#{name}_int.rb.tt +16 -0
- data/lib/bundlegem/templates/cli_gem/spec/#{name}_spec.rb.tt +12 -6
- data/lib/bundlegem/templates/cli_gem/spec/data/sample_data.json.tt +1 -0
- data/lib/bundlegem/templates/newgem/#{name}.gemspec.tt +8 -2
- data/lib/bundlegem/templates/newgem/Gemfile.tt +8 -2
- data/lib/bundlegem/templates/newgem/README.md.tt +2 -0
- data/lib/bundlegem/version.rb +1 -1
- data/lib/bundlegem.rb +1 -1
- data/spec/bundlegem_spec.rb +4 -4
- metadata +14 -11
- data/lib/bundlegem/templates/cli_gem/.travis.yml.tt +0 -3
- data/lib/bundlegem/templates/cli_gem/bin/#{name}.tt +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5caf6f6b8a9cff25ad3bc1521ed11b68a61ceab05541e8d1213e0424c0c24723
|
4
|
+
data.tar.gz: 3638cf2c466c2696f519b93b654d93d6e5d3a2b69ee41cfcf526d5b210a7e708
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4382727026063302d8f8da7f8ac1bf91d542bc754e774339c65013273003cabe1c053dd66f787cd5761168ac4e75393bd97fa89eb7df2e2fc35945941321c43c
|
7
|
+
data.tar.gz: f05e38dc8cab4557cabbe12bb18e67aace4c9c776ac2c8fe1b1483829d67843184fb4bf1b5e56591954460c961b0a6985192b8491ac196b4a3975c2dd29b2450
|
data/.gitignore
CHANGED
data/bundlegem.gemspec
CHANGED
@@ -19,10 +19,10 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_dependency "thor", "0.19.1"
|
22
|
-
spec.add_dependency "bundler"
|
22
|
+
spec.add_dependency "bundler", "~> 2.5"
|
23
23
|
|
24
|
-
#spec.add_development_dependency "bundler"
|
25
|
-
spec.add_development_dependency "rake", "~>
|
24
|
+
#spec.add_development_dependency "bundler"#, "~> 1.8"
|
25
|
+
spec.add_development_dependency "rake", "~> 13.2"
|
26
26
|
spec.add_development_dependency "rspec"
|
27
27
|
spec.add_development_dependency "pry"
|
28
28
|
end
|
data/changelog
CHANGED
@@ -9,7 +9,11 @@
|
|
9
9
|
Completed on Master:
|
10
10
|
- Nothing yet
|
11
11
|
|
12
|
+
** 0.0.14 **
|
13
|
+
- Bugfix: The project didn't work with ruby 3 due to use of the method `exists?`???
|
12
14
|
|
15
|
+
** 0.0.13 **
|
16
|
+
- Adds new built-in java template
|
13
17
|
|
14
18
|
** 0.0.12 **
|
15
19
|
- Feature: File mode (permissions) is now cloned from source template file's permissions to dest
|
data/lib/bundlegem/cli/gem.rb
CHANGED
@@ -15,7 +15,7 @@ module Bundlegem
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def run
|
18
|
-
raise_project_with_that_name_already_exists! if File.
|
18
|
+
raise_project_with_that_name_already_exists! if File.exist?(target)
|
19
19
|
|
20
20
|
underscored_name = name.tr('-', '_')
|
21
21
|
namespaced_path = name.tr('-', '/')
|
@@ -151,7 +151,7 @@ module Bundlegem
|
|
151
151
|
def match_template_src
|
152
152
|
template_src = TemplateManager.get_template_src(options)
|
153
153
|
|
154
|
-
if File.
|
154
|
+
if File.exist?(template_src)
|
155
155
|
return template_src # 'newgem' refers to the built in template that comes with the gem
|
156
156
|
else
|
157
157
|
raise_template_not_found! # else message the user that the template could not be found
|
@@ -212,7 +212,7 @@ module Bundlegem
|
|
212
212
|
context = instance_eval("binding")
|
213
213
|
|
214
214
|
make_file(destination, config) do
|
215
|
-
content = ERB.new(::File.binread(source),
|
215
|
+
content = ERB.new(::File.binread(source), trim_mode: "-", eoutvar: "@output_buffer").result(context)
|
216
216
|
content = block.call(content) if block
|
217
217
|
content
|
218
218
|
end
|
@@ -67,7 +67,7 @@ module Bundlegem
|
|
67
67
|
|
68
68
|
def create_config_file_if_needed!
|
69
69
|
FileUtils.mkdir_p @user_defined_templates_path
|
70
|
-
FileUtils.cp("#{SOURCE_ROOT}/config/config", @config_file) unless File.
|
70
|
+
FileUtils.cp("#{SOURCE_ROOT}/config/config", @config_file) unless File.exist? @config_file
|
71
71
|
end
|
72
72
|
|
73
73
|
def create_new_template(template_name)
|
@@ -43,7 +43,7 @@ module Bundlegem
|
|
43
43
|
#
|
44
44
|
def find_in_source_paths(target)
|
45
45
|
src_in_source_path = "#{File.dirname(__FILE__)}/templates/#{target}"
|
46
|
-
return src_in_source_path if File.
|
46
|
+
return src_in_source_path if File.exist?(src_in_source_path)
|
47
47
|
target # failed, hopefully full path to a user specified gem template file
|
48
48
|
end
|
49
49
|
|
@@ -51,7 +51,7 @@ module Bundlegem
|
|
51
51
|
# within the gem's source
|
52
52
|
def file_in_source?(target)
|
53
53
|
src_in_source_path = "#{File.dirname(__FILE__)}/templates/#{target}"
|
54
|
-
File.
|
54
|
+
File.exist?(src_in_source_path)
|
55
55
|
end
|
56
56
|
|
57
57
|
end
|
@@ -1,7 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
|
3
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require '<%=config[:namespaced_path]%>/version'
|
2
|
+
require_relative 'lib/<%=config[:namespaced_path]%>/version'
|
5
3
|
|
6
4
|
Gem::Specification.new do |spec|
|
7
5
|
spec.name = <%=config[:name].inspect%>
|
@@ -9,12 +7,26 @@ Gem::Specification.new do |spec|
|
|
9
7
|
spec.authors = [<%=config[:author].inspect%>]
|
10
8
|
spec.email = [<%=config[:email].inspect%>]
|
11
9
|
|
12
|
-
spec.summary = %q{
|
13
|
-
|
10
|
+
spec.summary = %q{A gem}
|
11
|
+
|
14
12
|
spec.homepage = "https://github.com/<%=config[:author]%>/<%=config[:name]%>"
|
15
|
-
|
13
|
+
spec.required_ruby_version = ">= 3.0.0"
|
14
|
+
|
15
|
+
spec.metadata["allowed_push_host"] = "https://localhost.com" # prevents unexpected data loss
|
16
|
+
|
17
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
18
|
+
spec.metadata["source_code_uri"] = "https://localhost.com"
|
19
|
+
spec.metadata["changelog_uri"] = "https://localhost.com"
|
16
20
|
|
17
|
-
|
21
|
+
# Specify which files should be added to the gem when it is released.
|
22
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
23
|
+
gemspec = File.basename(__FILE__)
|
24
|
+
spec.files = IO.popen(%w[git ls-files -z], chdir: __dir__, err: IO::NULL) do |ls|
|
25
|
+
ls.readlines("\x0", chomp: true).reject do |f|
|
26
|
+
(f == gemspec) ||
|
27
|
+
f.start_with?(*%w[bin/ test/ spec/ features/ .git .gitlab-ci.yml appveyor Gemfile])
|
28
|
+
end
|
29
|
+
end
|
18
30
|
spec.bindir = "exe"
|
19
31
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
32
|
spec.require_paths = ["lib"]
|
@@ -22,7 +34,7 @@ Gem::Specification.new do |spec|
|
|
22
34
|
# spec.add_dependency "bundler", "~> <%= config[:bundler_version] %>"
|
23
35
|
|
24
36
|
spec.add_development_dependency "bundler", "~> <%= config[:bundler_version] %>"
|
25
|
-
spec.add_development_dependency "rake", "~>
|
37
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
26
38
|
spec.add_development_dependency "rspec"
|
27
39
|
spec.add_development_dependency "pry"
|
28
40
|
end
|
@@ -1,21 +1,3 @@
|
|
1
|
-
|
1
|
+
TODO: Decide license and include here.
|
2
2
|
|
3
|
-
Copyright
|
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.
|
3
|
+
If this message is visible, please open a GH issue and assume Copyright and closed source is the intent of this repo.
|
@@ -1,39 +1,38 @@
|
|
1
1
|
# <%=config[:constant_name]%>
|
2
2
|
|
3
|
-
|
3
|
+
TODO: Describe your gem/ CLI tool
|
4
4
|
|
5
|
-
TODO: Delete this and the text above, and describe your gem
|
6
5
|
|
7
6
|
## Installation
|
8
7
|
|
9
|
-
|
8
|
+
To install this from source, just run
|
10
9
|
|
11
|
-
|
12
|
-
gem '<%=config[:name]%>'
|
13
|
-
```
|
10
|
+
$ rake install
|
14
11
|
|
15
|
-
And then execute:
|
16
12
|
|
17
|
-
|
13
|
+
## Usage
|
18
14
|
|
19
|
-
|
15
|
+
As a cli, run `<%=config[:constant_name].downcase%>`
|
20
16
|
|
21
|
-
$ gem install <%=config[:name]%>
|
22
17
|
|
23
|
-
##
|
18
|
+
## Development
|
24
19
|
|
25
|
-
|
20
|
+
Install dependencies with...
|
26
21
|
|
27
|
-
|
22
|
+
$ bundle
|
23
|
+
|
24
|
+
Mark individual tests with `, current: true` and run them with...
|
25
|
+
|
26
|
+
$ rake c
|
27
|
+
|
28
|
+
Run the entire unit test suite with...
|
29
|
+
|
30
|
+
$ rake
|
28
31
|
|
29
|
-
|
32
|
+
Run the integration test suite with...
|
30
33
|
|
31
|
-
|
34
|
+
$ rake integration
|
32
35
|
|
33
|
-
|
36
|
+
If a CLI is being developed, see `exe/<%=config[:constant_name].downcase%>` and consider adopting Thor or its alternatives if this will be a heavy CLI tool.
|
34
37
|
|
35
|
-
|
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
|
38
|
+
For open source projects, releasing a new version is done with an update to the version number in `version.rb`. 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). By default you'll need to tweak the gemspec file in root to enable pushes.
|
@@ -1,6 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "bundler/gem_tasks"
|
2
4
|
require "rspec/core/rake_task"
|
3
5
|
|
4
|
-
RSpec::Core::RakeTask.new(:spec)
|
6
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
7
|
+
t.verbose = false
|
8
|
+
end
|
9
|
+
|
10
|
+
RSpec::Core::RakeTask.new(:integration) do |t|
|
11
|
+
t.verbose = false
|
12
|
+
t.pattern = "spec/**/*_int.rb"
|
13
|
+
end
|
14
|
+
|
15
|
+
# this is for running tests that you've marked current... eg: it 'should work', :current => true do
|
16
|
+
# I waffle between this work flow and the one defined in spec_helper.rb which uses focus: true
|
17
|
+
# which overrides the entire test suite... not better
|
18
|
+
RSpec::Core::RakeTask.new(:current) do |t|
|
19
|
+
t.verbose = false
|
20
|
+
t.pattern = 'spec/**/*_{spec,int}.rb'
|
21
|
+
t.rspec_opts = ['--tag current']
|
22
|
+
end
|
23
|
+
|
24
|
+
# alias for current
|
25
|
+
RSpec::Core::RakeTask.new(:c) do |t|
|
26
|
+
t.verbose = false
|
27
|
+
t.pattern = 'spec/**/*_{spec,int}.rb'
|
28
|
+
t.rspec_opts = ['--tag current']
|
29
|
+
end
|
5
30
|
|
6
|
-
task :
|
31
|
+
task default: :spec
|
@@ -2,4 +2,11 @@
|
|
2
2
|
|
3
3
|
require "<%= config[:namespaced_path] %>"
|
4
4
|
|
5
|
-
|
5
|
+
command = ARGV.count > 0 ? ARGV[0].chomp.strip : ''
|
6
|
+
|
7
|
+
if command == "help" || command == "--help" || command == "-h"
|
8
|
+
puts <%= config[:constant_name] %>.help
|
9
|
+
return
|
10
|
+
end
|
11
|
+
|
12
|
+
puts <%= config[:constant_name] %>.main
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<%- config[:constant_array].each_with_index do |c,i| -%>
|
2
|
+
<%= ' '*i %>module <%= c %>
|
3
|
+
<%- end -%>
|
4
|
+
|
5
|
+
class Config
|
6
|
+
|
7
|
+
def initialize(c = {})
|
8
|
+
@root_folder = c[:root_folder]
|
9
|
+
@config_file = c[:config_file]
|
10
|
+
@database_url = c[:database_url]
|
11
|
+
end
|
12
|
+
|
13
|
+
def root_folder
|
14
|
+
@root_folder ||= gather_parameters('ROOT_FOLDER')
|
15
|
+
end
|
16
|
+
|
17
|
+
def config_file
|
18
|
+
@config_file ||= gather_parameters('CONFIG_FILE')
|
19
|
+
end
|
20
|
+
|
21
|
+
def database_url
|
22
|
+
@database_url ||= gather_parameters('DATABASE_URL')
|
23
|
+
end
|
24
|
+
|
25
|
+
# private
|
26
|
+
|
27
|
+
def gather_parameters(param_name)
|
28
|
+
ENV["<%=config[:constant_name].upcase%>_#{param_name.upcase}"] || default_constant_or_nil(param_name)
|
29
|
+
end
|
30
|
+
|
31
|
+
def default_constant_or_nil(param_name)
|
32
|
+
const_name = 'DEFAULT_' + param_name
|
33
|
+
root_module = Module.nesting.last
|
34
|
+
root_module.const_get(const_name) if root_module.const_defined?(const_name)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
<%- (config[:constant_array].size-1).downto(0) do |i| -%>
|
39
|
+
<%= ' '*i %>end
|
40
|
+
<%- end -%>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<%- config[:constant_array].each_with_index do |c,i| -%>
|
2
|
+
<%= ' '*i %>module <%= c %>
|
3
|
+
<%- end -%>
|
4
|
+
DEFAULT_ROOT_FOLDER = '..'
|
5
|
+
DEFAULT_CONFIG_FILE = '../env.yaml'
|
6
|
+
DEFAULT_DATABASE_URL = '..'
|
7
|
+
<%- (config[:constant_array].size-1).downto(0) do |i| -%>
|
8
|
+
<%= ' '*i %>end
|
9
|
+
<%- end -%>
|
@@ -1,9 +1,26 @@
|
|
1
1
|
require "<%=config[:namespaced_path]%>/version"
|
2
|
+
require "<%=config[:namespaced_path]%>/constants"
|
3
|
+
require "<%=config[:namespaced_path]%>/config"
|
4
|
+
|
2
5
|
|
3
6
|
<%- config[:constant_array].each_with_index do |c,i| -%>
|
4
7
|
<%= ' '*i %>module <%= c %>
|
5
8
|
<%- end -%>
|
6
|
-
|
9
|
+
# Your code goes here...
|
10
|
+
def self.main
|
11
|
+
"test"
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.help
|
15
|
+
msg = <<-EOF
|
16
|
+
<%=config[:constant_name].downcase%>
|
17
|
+
TODO: Update this to be correct to this tool!
|
18
|
+
Commands:
|
19
|
+
ls - List things
|
20
|
+
run - Run things
|
21
|
+
status - Show status
|
22
|
+
EOF
|
23
|
+
end
|
7
24
|
<%- (config[:constant_array].size-1).downto(0) do |i| -%>
|
8
25
|
<%= ' '*i %>end
|
9
26
|
<%- end -%>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module <%= config[:constant_name] %>
|
4
|
+
|
5
|
+
describe Config do
|
6
|
+
|
7
|
+
before :each do
|
8
|
+
ENV['<%= config[:constant_name].upcase %>_ROOT_FOLDER'] = nil
|
9
|
+
end
|
10
|
+
|
11
|
+
after :each do
|
12
|
+
ENV['<%= config[:constant_name].upcase %>_ROOT_FOLDER'] = nil
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'returns the ROOT_FOLDER set by the environment variable' do
|
16
|
+
ENV['<%= config[:constant_name].upcase %>_ROOT_FOLDER'] = "/tmp/blah"
|
17
|
+
|
18
|
+
c = Config.new
|
19
|
+
|
20
|
+
expect(c.root_folder).to eq("/tmp/blah")
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
|
4
|
+
# This file ends in _int because it's an integration test and can use the file
|
5
|
+
# system and network to assert the applications correctness
|
6
|
+
|
7
|
+
module <%= config[:constant_name] %>
|
8
|
+
|
9
|
+
describe <%= config[:constant_name] %> do
|
10
|
+
it 'does something useful' do
|
11
|
+
result = <%= config[:constant_name] %>.main
|
12
|
+
expect(result).to eq("test")
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -1,11 +1,17 @@
|
|
1
1
|
require 'spec_helper'
|
2
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
3
|
|
8
|
-
|
9
|
-
|
4
|
+
module <%= config[:constant_name] %>
|
5
|
+
|
6
|
+
describe <%= config[:constant_name] %> do
|
7
|
+
it 'has a version number' do
|
8
|
+
expect(<%= config[:constant_name] %>::VERSION).not_to be nil
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'does something useful', current: true do
|
12
|
+
result = <%= config[:constant_name] %>.main
|
13
|
+
expect(result).to eq("test")
|
14
|
+
end
|
10
15
|
end
|
16
|
+
|
11
17
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
{ "I'm some sample data": "used in a test" }
|
@@ -9,10 +9,16 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = [<%=config[:author].inspect%>]
|
10
10
|
spec.email = [<%=config[:email].inspect%>]
|
11
11
|
|
12
|
-
spec.summary = %q{
|
12
|
+
spec.summary = %q{Write a short summary, because Rubygems requires one.}
|
13
13
|
# spec.description = %q{TODO: delete this line since you're in a hurry.}
|
14
14
|
spec.homepage = "https://github.com/<%=config[:author]%>/<%=config[:name]%>"
|
15
|
-
|
15
|
+
spec.required_ruby_version = ">= 3.0.0"
|
16
|
+
|
17
|
+
spec.metadata["allowed_push_host"] = "https://localhost.com" # prevents unexpected data loss
|
18
|
+
|
19
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
20
|
+
spec.metadata["source_code_uri"] = "https://localhost.com"
|
21
|
+
spec.metadata["changelog_uri"] = "https://localhost.com"
|
16
22
|
|
17
23
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
24
|
spec.bindir = "exe"
|
@@ -1,4 +1,10 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
# Specify your gem's dependencies in blah.gemspec
|
4
6
|
gemspec
|
7
|
+
|
8
|
+
gem "rake", "~> 13.0"
|
9
|
+
|
10
|
+
gem "rspec", "~> 3.0"
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# <%=config[:constant_name]%>
|
2
2
|
|
3
|
+
NOTE: I'm tempted to deprecate this in favor of `cli_gem`. I'm going to make updates to that exclusively in the meantime.
|
4
|
+
|
3
5
|
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
6
|
|
5
7
|
TODO: Delete this and the text above, and describe your gem
|
data/lib/bundlegem/version.rb
CHANGED
data/lib/bundlegem.rb
CHANGED
@@ -42,7 +42,7 @@ module Bundlegem
|
|
42
42
|
config_file_data['best_templates'].split.each do |url|
|
43
43
|
uri = URI.parse(url)
|
44
44
|
template_folder_name = File.basename(uri.path).sub(/\.git$/, "")
|
45
|
-
if !File.
|
45
|
+
if !File.exist?("#{ENV['HOME']}/.bundlegem/templates/#{template_folder_name}")
|
46
46
|
cmd = "cd #{ENV['HOME']}/.bundlegem/templates && git clone #{url}"
|
47
47
|
cmd += " 2> /dev/null" if $test_env
|
48
48
|
`#{cmd}`
|
data/spec/bundlegem_spec.rb
CHANGED
@@ -21,7 +21,7 @@ describe Bundlegem do
|
|
21
21
|
list_output = Bundlegem.list
|
22
22
|
|
23
23
|
expect(list_output).to eq " PREDEFINED:\n * newgem (default)\n c_extension_gem\n cli_gem\n\n MISC:\n empty_template\n\n"
|
24
|
-
expect(File.
|
24
|
+
expect(File.exist?("#{ENV['HOME']}/.bundlegem")).to be true
|
25
25
|
end
|
26
26
|
|
27
27
|
it "lists with good categories" do
|
@@ -38,7 +38,7 @@ describe Bundlegem do
|
|
38
38
|
gem_name = "tmp_gem"
|
39
39
|
|
40
40
|
capture_stdout { Bundlegem.gem(options, gem_name) }
|
41
|
-
expect(File.
|
41
|
+
expect(File.exist?("#{@dst_dir}/#{gem_name}/README.md")).to be_truthy
|
42
42
|
end
|
43
43
|
|
44
44
|
it "can generate the c_ext gem fine" do
|
@@ -46,7 +46,7 @@ describe Bundlegem do
|
|
46
46
|
gem_name = "tmp_gem"
|
47
47
|
|
48
48
|
capture_stdout { Bundlegem.gem(options, gem_name) }
|
49
|
-
expect(File.
|
49
|
+
expect(File.exist?("#{@dst_dir}/#{gem_name}/ext/tmp_gem/#{gem_name}.c")).to be_truthy
|
50
50
|
end
|
51
51
|
|
52
52
|
|
@@ -62,7 +62,7 @@ describe Bundlegem do
|
|
62
62
|
|
63
63
|
it "can download best templates from the web" do
|
64
64
|
capture_stdout { Bundlegem.install_best_templates }
|
65
|
-
expect(File.
|
65
|
+
expect(File.exist?("#{ENV['HOME']}/.bundlegem/templates/arduino/README.md")).to be_truthy
|
66
66
|
end
|
67
67
|
|
68
68
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bundlegem
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TheNotary
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-02-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -28,30 +28,30 @@ dependencies:
|
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '2.5'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '2.5'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '13.2'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '13.2'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -129,13 +129,11 @@ files:
|
|
129
129
|
- lib/bundlegem/templates/c_extension_gem/spec/#{name}_spec.rb.tt
|
130
130
|
- lib/bundlegem/templates/c_extension_gem/spec/spec_helper.rb.tt
|
131
131
|
- lib/bundlegem/templates/cli_gem/#{name}.gemspec.tt
|
132
|
-
- lib/bundlegem/templates/cli_gem/.travis.yml.tt
|
133
132
|
- lib/bundlegem/templates/cli_gem/CODE_OF_CONDUCT.md.tt
|
134
133
|
- lib/bundlegem/templates/cli_gem/Gemfile.tt
|
135
134
|
- lib/bundlegem/templates/cli_gem/LICENSE.txt.tt
|
136
135
|
- lib/bundlegem/templates/cli_gem/README.md.tt
|
137
136
|
- lib/bundlegem/templates/cli_gem/Rakefile.tt
|
138
|
-
- lib/bundlegem/templates/cli_gem/bin/#{name}.tt
|
139
137
|
- lib/bundlegem/templates/cli_gem/bin/console.tt
|
140
138
|
- lib/bundlegem/templates/cli_gem/changelog.tt
|
141
139
|
- lib/bundlegem/templates/cli_gem/exe/#{name}.tt
|
@@ -144,9 +142,14 @@ files:
|
|
144
142
|
- lib/bundlegem/templates/cli_gem/ext/#{name}/extconf.rb.tt
|
145
143
|
- lib/bundlegem/templates/cli_gem/gitignore.tt
|
146
144
|
- lib/bundlegem/templates/cli_gem/lib/#{name}.rb.tt
|
145
|
+
- lib/bundlegem/templates/cli_gem/lib/#{name}/config.rb.tt
|
146
|
+
- lib/bundlegem/templates/cli_gem/lib/#{name}/constants.rb.tt
|
147
147
|
- lib/bundlegem/templates/cli_gem/lib/#{name}/version.rb.tt
|
148
148
|
- lib/bundlegem/templates/cli_gem/rspec.tt
|
149
|
+
- lib/bundlegem/templates/cli_gem/spec/#{name}/config_spec.rb.tt
|
150
|
+
- lib/bundlegem/templates/cli_gem/spec/#{name}_int.rb.tt
|
149
151
|
- lib/bundlegem/templates/cli_gem/spec/#{name}_spec.rb.tt
|
152
|
+
- lib/bundlegem/templates/cli_gem/spec/data/sample_data.json.tt
|
150
153
|
- lib/bundlegem/templates/cli_gem/spec/spec_helper.rb.tt
|
151
154
|
- lib/bundlegem/templates/newgem/#{name}.gemspec.tt
|
152
155
|
- lib/bundlegem/templates/newgem/.gitignore.tt
|
@@ -186,7 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
186
189
|
- !ruby/object:Gem::Version
|
187
190
|
version: '0'
|
188
191
|
requirements: []
|
189
|
-
rubygems_version: 3.
|
192
|
+
rubygems_version: 3.5.21
|
190
193
|
signing_key:
|
191
194
|
specification_version: 4
|
192
195
|
summary: this gem makes more gems!
|