bundlegem 0.0.14 → 0.0.15

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