bundlegem 0.0.14 → 0.0.15

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d25b0d1c8d8979da5e2f8354d8ee1ec927c103202a379ef5c02b221ab7f1f8aa
4
- data.tar.gz: 180774ef2a0cebab93940a880921ab59279d1d831f7d31c6daf9c0a8c4a4d4c9
3
+ metadata.gz: 5caf6f6b8a9cff25ad3bc1521ed11b68a61ceab05541e8d1213e0424c0c24723
4
+ data.tar.gz: 3638cf2c466c2696f519b93b654d93d6e5d3a2b69ee41cfcf526d5b210a7e708
5
5
  SHA512:
6
- metadata.gz: 6d8336a33e61ce573341936dbd8bd89586fd6302299c4d9111d0b50810ecdea01e668a6317344e0202c99fc423cc541db43f96afe5c8fbc351862ea7dbe9b2b1
7
- data.tar.gz: 2ef917281a2f763ef4f78976740e10402591f64c956e4d6c7d921dc05497094cb4b3a923f6cc850ea9b12cbba041dc194a30b61c3929b2e98f9c1f6519871782
6
+ metadata.gz: 4382727026063302d8f8da7f8ac1bf91d542bc754e774339c65013273003cabe1c053dd66f787cd5761168ac4e75393bd97fa89eb7df2e2fc35945941321c43c
7
+ data.tar.gz: f05e38dc8cab4557cabbe12bb18e67aace4c9c776ac2c8fe1b1483829d67843184fb4bf1b5e56591954460c961b0a6985192b8491ac196b4a3975c2dd29b2450
@@ -1,7 +1,5 @@
1
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'
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{TODO: Write a short summary, because Rubygems requires one.}
13
- # spec.description = %q{TODO: delete this line since you're in a hurry.}
10
+ spec.summary = %q{A gem}
11
+
14
12
  spec.homepage = "https://github.com/<%=config[:author]%>/<%=config[:name]%>"
15
- # spec.license = "MIT" # uncomment and replace with GPLv3, etc.
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
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
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", "~> 10.0"
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
- The MIT License (MIT)
1
+ TODO: Decide license and include here.
2
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.
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
- 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.
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
- Add this line to your application's Gemfile:
8
+ To install this from source, just run
10
9
 
11
- ```ruby
12
- gem '<%=config[:name]%>'
13
- ```
10
+ $ rake install
14
11
 
15
- And then execute:
16
12
 
17
- $ bundle
13
+ ## Usage
18
14
 
19
- Or install it yourself as:
15
+ As a cli, run `<%=config[:constant_name].downcase%>`
20
16
 
21
- $ gem install <%=config[:name]%>
22
17
 
23
- ## Usage
18
+ ## Development
24
19
 
25
- TODO: Write usage instructions here
20
+ Install dependencies with...
26
21
 
27
- ## Development
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
- 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 %>
32
+ Run the integration test suite with...
30
33
 
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).
34
+ $ rake integration
32
35
 
33
- ## Contributing
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
- 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
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 :default => :spec
31
+ task default: :spec
@@ -2,4 +2,11 @@
2
2
 
3
3
  require "<%= config[:namespaced_path] %>"
4
4
 
5
- puts "I'm still just a stub cli ruby app"
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
- <%= ' '*config[:constant_array].size %># Your code goes here...
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
- it 'does something useful' do
9
- expect(false).to eq(true)
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{TODO: Write a short summary, because Rubygems requires one.}
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
- # spec.license = "MIT" # uncomment this line if MIT is the best license for your situation
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
- source 'https://rubygems.org'
1
+ # frozen_string_literal: true
2
2
 
3
- # Specify your gem's dependencies in <%=config[:name]%>.gemspec
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
@@ -1,3 +1,3 @@
1
1
  module Bundlegem
2
- VERSION = "0.0.14"
2
+ VERSION = "0.0.15"
3
3
  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.14
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: 2024-04-02 00:00:00.000000000 Z
11
+ date: 2025-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -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.5.7
192
+ rubygems_version: 3.5.21
190
193
  signing_key:
191
194
  specification_version: 4
192
195
  summary: this gem makes more gems!
@@ -1,3 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - <%= RUBY_VERSION %>
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "<%= config[:namespaced_path] %>"