bundlegem 0.0.8 → 0.0.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +9 -9
- data/bin/bundlegem +7 -2
- data/changelog +48 -4
- data/config/config +1 -1
- data/lib/bundlegem.rb +5 -2
- data/lib/bundlegem/cli/gem.rb +3 -2
- data/lib/bundlegem/strings.rb +1 -0
- data/lib/bundlegem/templates/c_extension_gem/#{name}.gemspec.tt +2 -9
- data/lib/bundlegem/templates/c_extension_gem/Rakefile.tt +0 -12
- data/lib/bundlegem/templates/cli_gem/#{name}.gemspec.tt +4 -11
- data/lib/bundlegem/templates/cli_gem/Rakefile.tt +0 -19
- data/lib/bundlegem/templates/newgem/#{name}.gemspec.tt +3 -11
- data/lib/bundlegem/version.rb +1 -1
- data/spec/bundlegem_spec.rb +1 -1
- metadata +6 -22
- data/lib/bundlegem/templates/service/#{name}.gemspec.tt +0 -34
- data/lib/bundlegem/templates/service/.travis.yml.tt +0 -3
- data/lib/bundlegem/templates/service/Gemfile.tt +0 -4
- data/lib/bundlegem/templates/service/LICENSE.txt.tt +0 -21
- data/lib/bundlegem/templates/service/README.md +0 -5
- data/lib/bundlegem/templates/service/README.md.tt +0 -23
- data/lib/bundlegem/templates/service/Rakefile.tt +0 -25
- data/lib/bundlegem/templates/service/bin/#{name}.tt +0 -27
- data/lib/bundlegem/templates/service/changelog.tt +0 -6
- data/lib/bundlegem/templates/service/gitignore.tt +0 -10
- data/lib/bundlegem/templates/service/lib/#{name}.rb.tt +0 -26
- data/lib/bundlegem/templates/service/lib/#{name}/version.rb.tt +0 -7
- data/lib/bundlegem/templates/service/rspec.tt +0 -2
- data/lib/bundlegem/templates/service/spec/newgem_spec.rb.tt +0 -11
- data/lib/bundlegem/templates/service/spec/spec_helper.rb.tt +0 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e98962982dad9409fe6231e3f97bfb1957a96539f48f6476b8230f48faf60fdf
|
4
|
+
data.tar.gz: bdcfdd4d857319258605a6c31fcde3deeae48a2853bc7d1b7cd8946c963e9783
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6b47d5c96b0fc2fd99341e8940efb105939ba8df39c652a7a522d940b127c4d44d20c1a036685bf3660f5631bb2ad12b01ae7d3a30648927b2d79b84fb128f01
|
7
|
+
data.tar.gz: 0a4f4da996e298b5a00afcb317875d2fe73a08750c4e94fd67da2ac3402330084304bc082965ab4f8a996bc608ae45f37cfe1dfdf2de8e7bc874a964c43dbf29
|
data/README.md
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# BundleGem: A Gem Project Generator with User Defined Templates
|
2
2
|
|
3
|
-
|
3
|
+
Alot of the code here was extracted from Bundler's `bundle gem` command, so credits to Bundler folks. Originally I planned to make the new features accessible to the Bundler team and so tried to keep the code as similar to their project as possible, but ultimately discovered that they don't want to feature to grow because good tools should do a single thing very well (manage dependencies), not many things (manage dependencies and also do random other helpful stuff).
|
4
4
|
|
5
5
|
The goal of the project is to allow users to define templates in the most native form to all technologist: Directory Structures, short commands, and helpful commands which make the gem's usage completely visible!
|
6
6
|
|
7
|
-
The benefits of using this repo to create gems rather than bundler is that you can choose to create 'classes' of gems. By classes, I mean that there are different typs of 'gems', there are basic library gems, that are just code and can only be used from other code, there are command line application gems, those are gems that are run on the command line and include a binary file, and there are also web interface gems, those are gems which spin up a simple web interface and request that the user connect to it's server on what ever port it has spun up on. Depending on your field of specialty, you may be able to imagine other classes of gems that will aid you in your work.
|
7
|
+
The benefits of using this repo to create gems rather than bundler is that you can choose to create 'classes' of gems. By classes, I mean that there are different typs of 'gems', there are basic library gems, that are just code and can only be used from other code, there are command line application gems, those are gems that are run on the command line and include a binary file, and there are also web interface gems, those are gems which spin up a simple web interface and request that the user connect to it's server on what ever port it has spun up on. Depending on your field of specialty, you may be able to imagine other classes of gems that will aid you in your work.
|
8
8
|
|
9
|
-
All of these 'classes of gems' as I refer to them, start out with a different code base, consistent with all other gems of the same class. This 'class based' aproach to gem creation is different from the addative approach that other gem genorators are based on.
|
9
|
+
All of these 'classes of gems' as I refer to them, start out with a different code base, consistent with all other gems of the same class. This 'class based' aproach to gem creation is different from the addative approach that other gem genorators are based on.
|
10
10
|
|
11
|
-
The most benificial aspect of this gem is that it allows users to specify exactly how they want their 'default starting gem' to look like, rather than rely on what someone else thought their default starting gem should look like.
|
11
|
+
The most benificial aspect of this gem is that it allows users to specify exactly how they want their 'default starting gem' to look like, rather than rely on what someone else thought their default starting gem should look like.
|
12
12
|
|
13
13
|
### Installation and usage
|
14
14
|
|
@@ -21,8 +21,8 @@ Then create a new template for a gem class you expect to use more than once:
|
|
21
21
|
```
|
22
22
|
$ bundlegem --newtemplate
|
23
23
|
Specify a name for your gem template: my_service
|
24
|
-
Specify description:
|
25
|
-
Specify template tag name [MISC]:
|
24
|
+
Specify description:
|
25
|
+
Specify template tag name [MISC]:
|
26
26
|
Cloning base project structure into ~/.bundlegem/templates/my_service
|
27
27
|
...
|
28
28
|
Complete!
|
@@ -43,7 +43,7 @@ EMBEDDED:
|
|
43
43
|
|
44
44
|
```
|
45
45
|
|
46
|
-
You'll now find a project skeleton in ~/.bundlegem/templates/my_service that you can customize to your liking.
|
46
|
+
You'll now find a project skeleton in ~/.bundlegem/templates/my_service that you can customize to your liking.
|
47
47
|
|
48
48
|
|
49
49
|
Finally, create a new gem using your new gem template:
|
@@ -66,5 +66,5 @@ You'll get a good idea as to the possibilities by inspecting the files in [templ
|
|
66
66
|
|
67
67
|
### Contributing
|
68
68
|
|
69
|
-
Please feel free to speak up using the issue section if there's anything on your mind :)
|
70
|
-
Do the usual fork routine and issue a pull request by all means.
|
69
|
+
Please feel free to speak up using the issue section if there's anything on your mind :)
|
70
|
+
Do the usual fork routine and issue a pull request by all means.
|
data/bin/bundlegem
CHANGED
@@ -8,7 +8,7 @@ require 'bundlegem'
|
|
8
8
|
|
9
9
|
|
10
10
|
if ARGV.length < 1
|
11
|
-
puts "
|
11
|
+
puts "Error: you need to specify a name for the project being created\n\n"
|
12
12
|
puts Bundlegem::HELP_MSG
|
13
13
|
exit 1
|
14
14
|
end
|
@@ -23,6 +23,11 @@ if ARGV[0] == "--list" or ARGV[0] == "-l"
|
|
23
23
|
exit 0
|
24
24
|
end
|
25
25
|
|
26
|
+
if ARGV[0] == "--version" or ARGV[0] == "-v"
|
27
|
+
puts Bundlegem.version
|
28
|
+
exit 0
|
29
|
+
end
|
30
|
+
|
26
31
|
if ARGV[0] == "--newtemplate"
|
27
32
|
puts "Sorry, I haven't been implemented, I don't have a lot of free time atm :("
|
28
33
|
exit 0
|
@@ -45,7 +50,7 @@ ARGV.each_with_index do |arg, i|
|
|
45
50
|
options.merge!({"template" => ARGV[i+1]})
|
46
51
|
skip_i = i+1
|
47
52
|
next
|
48
|
-
elsif !arg
|
53
|
+
elsif !(arg =~ /^-/) # this must be what they want as the gem_name
|
49
54
|
gem_name = arg
|
50
55
|
end
|
51
56
|
end
|
data/changelog
CHANGED
@@ -1,17 +1,61 @@
|
|
1
1
|
** 0.0.x **
|
2
|
+
- Add prompt "Would you care to summarize your gem for documentation purposes? (y/[n])
|
3
|
+
- Add prompt for specifying java package org name
|
2
4
|
- CMD: --newtemplate to start new template
|
3
5
|
- I'll need to write a basic starter template that is educational
|
6
|
+
- Why have more than one built in template? Only one is needed for testing, the rest should
|
7
|
+
be pulled from the web and made easily customizable by the users.
|
8
|
+
|
9
|
+
Completed on Master:
|
10
|
+
- Nothing yet
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
** 0.0.12 **
|
15
|
+
- Feature: File mode (permissions) is now cloned from source template file's permissions to dest
|
16
|
+
- Bugfix: project names may now contain hyphens
|
17
|
+
- Feature: java project template added to best templates
|
18
|
+
- Feature: python project template added to best templates
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
** 0.0.11 **
|
23
|
+
- Bugfix: config[:bundler_version] was listing the version of bundlegem not bundler
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
** 0.0.10 **
|
28
|
+
- Feature: tweaks built-in templates
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
** 0.0.9 **
|
33
|
+
- Bugfix: there were misconfigurations with the Rakefiles for cli_gems and c_ect gems that were corrected
|
34
|
+
- Feature: `--version` option added
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
** 0.0.8 **
|
39
|
+
|
40
|
+
- Bugfix: fixes bug where git clone was attempted even when the a clone
|
41
|
+
already took place in a prior run
|
42
|
+
- Bugfix: fixes bug where I thought I was using something cool like figaro
|
43
|
+
but was not
|
44
|
+
- Bugfix: fixes bug where configuration wasn't loaded before running
|
45
|
+
--install-best-templates
|
46
|
+
- Bugfix: fixes bug where require pry was left in
|
47
|
+
|
4
48
|
|
5
49
|
|
6
50
|
** 0.0.7 **
|
7
51
|
|
8
52
|
- Feature: Ability to load templates from github via --install-best-templates
|
9
|
-
- Feature: Make each user defined gem have a subfolder that is the exact
|
53
|
+
- Feature: Make each user defined gem have a subfolder that is the exact
|
10
54
|
project structure, so the readme for the gem can exist without fear of it
|
11
55
|
being copied into new projects
|
12
56
|
- Feature: Gem's display names are based on what's specified in their
|
13
57
|
respective root .bundlegem
|
14
|
-
- Feature: Allow better CLI parsing so -t t_name can be the first couple
|
58
|
+
- Feature: Allow better CLI parsing so -t t_name can be the first couple
|
15
59
|
arguments or at the end
|
16
60
|
- Bugfix: cli_gem and c_ext_gem now show up in the list
|
17
61
|
- Bugfix: cli_gem and c_ext_gem had typos fixed
|
@@ -24,7 +68,7 @@
|
|
24
68
|
- BUG: Accidentally tracked in a test gem project and fixed tests to not
|
25
69
|
change directory into a test area for creating new gems.
|
26
70
|
- BUG: newgem template didn't have a dot in .gitignore.tt
|
27
|
-
|
71
|
+
|
28
72
|
|
29
73
|
|
30
74
|
** 0.0.5 **
|
@@ -46,7 +90,7 @@
|
|
46
90
|
- Raises error if none of the files in the template directory end in .tt
|
47
91
|
- Create even empty folders
|
48
92
|
|
49
|
-
|
93
|
+
|
50
94
|
** 0.0.2 **
|
51
95
|
- Added default gem template 'service'
|
52
96
|
- Better syntax of bundlegem gem_name -t template_name
|
data/config/config
CHANGED
@@ -1,4 +1,4 @@
|
|
1
1
|
# Comments made to this file will not be preserved
|
2
2
|
---
|
3
3
|
default_template: newgem
|
4
|
-
best_templates: https://github.com/TheNotary/arduino.git https://github.com/TheNotary/raspberry_pi_c.git https://github.com/TheNotary/docker_repo.git https://github.com/TheNotary/simple_frontend.git
|
4
|
+
best_templates: https://github.com/TheNotary/arduino.git https://github.com/TheNotary/raspberry_pi_c.git https://github.com/TheNotary/docker_repo.git https://github.com/TheNotary/simple_frontend.git https://github.com/tymeart/node_cli https://github.com/TheNotary/java-cli-app https://github.com/TheNotary/java-gradle-cli-app https://github.com/TheNotary/python_library
|
data/lib/bundlegem.rb
CHANGED
@@ -11,14 +11,17 @@ module Bundlegem
|
|
11
11
|
|
12
12
|
class << self
|
13
13
|
|
14
|
+
def version
|
15
|
+
Bundlegem::VERSION
|
16
|
+
end
|
17
|
+
|
14
18
|
# lists available templates
|
15
19
|
def list
|
16
20
|
configurator = Configurator.new
|
17
21
|
# search through builtin
|
18
22
|
available_templates = [ { "predefined" => "newgem" },
|
19
23
|
{ "predefined" => "c_extension_gem" },
|
20
|
-
{ "predefined" => "cli_gem" }
|
21
|
-
{ "predefined" => "service" }]
|
24
|
+
{ "predefined" => "cli_gem" }]
|
22
25
|
|
23
26
|
# search through user downloaded
|
24
27
|
available_templates += configurator.user_downloaded_templates
|
data/lib/bundlegem/cli/gem.rb
CHANGED
@@ -176,7 +176,7 @@ module Bundlegem
|
|
176
176
|
|
177
177
|
|
178
178
|
def bundler_dependency_version
|
179
|
-
v = Gem::Version.new(
|
179
|
+
v = Gem::Version.new(Bundler::VERSION)
|
180
180
|
req = v.segments[0..1]
|
181
181
|
req << 'a' if v.prerelease?
|
182
182
|
req.join(".")
|
@@ -217,10 +217,11 @@ module Bundlegem
|
|
217
217
|
content
|
218
218
|
end
|
219
219
|
|
220
|
+
original_mode = File.stat(source).mode
|
221
|
+
File.chmod(original_mode, destination)
|
220
222
|
end
|
221
223
|
|
222
224
|
|
223
|
-
|
224
225
|
#
|
225
226
|
# EDIT: Reworked from Thor to not rely on Thor (or do so much unneeded stuff)
|
226
227
|
#
|
data/lib/bundlegem/strings.rb
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = [<%=config[:email].inspect%>]
|
11
11
|
|
12
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.}
|
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.license = "MIT" # uncomment this line if MIT is the best license for your situation
|
16
16
|
|
@@ -18,18 +18,11 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.bindir = "exe"
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
|
-
<%- if config[:ext] -%>
|
22
21
|
spec.extensions = ["ext/<%=config[:underscored_name]%>/extconf.rb"]
|
23
|
-
<%- end -%>
|
24
22
|
|
25
|
-
if spec.respond_to?(:metadata)
|
26
|
-
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."
|
27
|
-
end
|
28
23
|
|
29
|
-
spec.add_development_dependency "bundler"
|
24
|
+
spec.add_development_dependency "bundler"
|
30
25
|
spec.add_development_dependency "rake", "~> 10.0"
|
31
|
-
<%- if config[:ext] -%>
|
32
26
|
spec.add_development_dependency "rake-compiler"
|
33
|
-
<%- end -%>
|
34
27
|
spec.add_development_dependency "rspec"
|
35
28
|
end
|
@@ -1,20 +1,9 @@
|
|
1
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
2
|
require "rspec/core/rake_task"
|
12
3
|
|
13
4
|
RSpec::Core::RakeTask.new(:spec)
|
14
5
|
|
15
6
|
task :default => :spec
|
16
|
-
<% end -%>
|
17
|
-
<% if config[:ext] -%>
|
18
7
|
require "rake/extensiontask"
|
19
8
|
|
20
9
|
task :build => :compile
|
@@ -22,4 +11,3 @@ task :build => :compile
|
|
22
11
|
Rake::ExtensionTask.new("<%=config[:underscored_name]%>") do |ext|
|
23
12
|
ext.lib_dir = "lib/<%=config[:namespaced_path]%>"
|
24
13
|
end
|
25
|
-
<% end -%>
|
@@ -10,26 +10,19 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = [<%=config[:email].inspect%>]
|
11
11
|
|
12
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.}
|
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
|
15
|
+
# spec.license = "MIT" # uncomment and replace with GPLv3, etc.
|
16
16
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
18
|
spec.bindir = "exe"
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
|
-
<%- if config[:ext] -%>
|
22
|
-
spec.extensions = ["ext/<%=config[:underscored_name]%>/extconf.rb"]
|
23
|
-
<%- end -%>
|
24
21
|
|
25
|
-
|
26
|
-
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."
|
27
|
-
end
|
22
|
+
# spec.add_dependency "bundler", "~> <%= config[:bundler_version] %>"
|
28
23
|
|
29
24
|
spec.add_development_dependency "bundler", "~> <%= config[:bundler_version] %>"
|
30
25
|
spec.add_development_dependency "rake", "~> 10.0"
|
31
|
-
<%- if config[:ext] -%>
|
32
|
-
spec.add_development_dependency "rake-compiler"
|
33
|
-
<%- end -%>
|
34
26
|
spec.add_development_dependency "rspec"
|
27
|
+
spec.add_development_dependency "pry"
|
35
28
|
end
|
@@ -1,25 +1,6 @@
|
|
1
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
2
|
require "rspec/core/rake_task"
|
12
3
|
|
13
4
|
RSpec::Core::RakeTask.new(:spec)
|
14
5
|
|
15
6
|
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 -%>
|
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = [<%=config[:email].inspect%>]
|
11
11
|
|
12
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.}
|
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.license = "MIT" # uncomment this line if MIT is the best license for your situation
|
16
16
|
|
@@ -18,18 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.bindir = "exe"
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
|
-
<%- if config[:ext] -%>
|
22
|
-
spec.extensions = ["ext/<%=config[:underscored_name]%>/extconf.rb"]
|
23
|
-
<%- end -%>
|
24
21
|
|
25
|
-
if spec.respond_to?(:metadata)
|
26
|
-
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."
|
27
|
-
end
|
28
22
|
|
29
|
-
spec.add_development_dependency "bundler"
|
23
|
+
spec.add_development_dependency "bundler"
|
30
24
|
spec.add_development_dependency "rake", "~> 10.0"
|
31
|
-
<%- if config[:ext] -%>
|
32
|
-
spec.add_development_dependency "rake-compiler"
|
33
|
-
<%- end -%>
|
34
25
|
spec.add_development_dependency "rspec"
|
26
|
+
spec.add_development_dependency "pry"
|
35
27
|
end
|
data/lib/bundlegem/version.rb
CHANGED
data/spec/bundlegem_spec.rb
CHANGED
@@ -20,7 +20,7 @@ describe Bundlegem do
|
|
20
20
|
|
21
21
|
list_output = Bundlegem.list
|
22
22
|
|
23
|
-
expect(list_output).to eq " PREDEFINED:\n * newgem (default)\n c_extension_gem\n cli_gem\n
|
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
24
|
expect(File.exists?("#{ENV['HOME']}/.bundlegem")).to be true
|
25
25
|
end
|
26
26
|
|
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.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TheNotary
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-09-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -164,21 +164,6 @@ files:
|
|
164
164
|
- lib/bundlegem/templates/newgem/rspec.tt
|
165
165
|
- lib/bundlegem/templates/newgem/spec/#{name}_spec.rb.tt
|
166
166
|
- lib/bundlegem/templates/newgem/spec/spec_helper.rb.tt
|
167
|
-
- lib/bundlegem/templates/service/#{name}.gemspec.tt
|
168
|
-
- lib/bundlegem/templates/service/.travis.yml.tt
|
169
|
-
- lib/bundlegem/templates/service/Gemfile.tt
|
170
|
-
- lib/bundlegem/templates/service/LICENSE.txt.tt
|
171
|
-
- lib/bundlegem/templates/service/README.md
|
172
|
-
- lib/bundlegem/templates/service/README.md.tt
|
173
|
-
- lib/bundlegem/templates/service/Rakefile.tt
|
174
|
-
- lib/bundlegem/templates/service/bin/#{name}.tt
|
175
|
-
- lib/bundlegem/templates/service/changelog.tt
|
176
|
-
- lib/bundlegem/templates/service/gitignore.tt
|
177
|
-
- lib/bundlegem/templates/service/lib/#{name}.rb.tt
|
178
|
-
- lib/bundlegem/templates/service/lib/#{name}/version.rb.tt
|
179
|
-
- lib/bundlegem/templates/service/rspec.tt
|
180
|
-
- lib/bundlegem/templates/service/spec/newgem_spec.rb.tt
|
181
|
-
- lib/bundlegem/templates/service/spec/spec_helper.rb.tt
|
182
167
|
- lib/bundlegem/version.rb
|
183
168
|
- spec/bundlegem_spec.rb
|
184
169
|
- spec/spec_helper.rb
|
@@ -186,7 +171,7 @@ homepage: ''
|
|
186
171
|
licenses:
|
187
172
|
- MIT
|
188
173
|
metadata: {}
|
189
|
-
post_install_message:
|
174
|
+
post_install_message:
|
190
175
|
rdoc_options: []
|
191
176
|
require_paths:
|
192
177
|
- lib
|
@@ -201,9 +186,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
201
186
|
- !ruby/object:Gem::Version
|
202
187
|
version: '0'
|
203
188
|
requirements: []
|
204
|
-
|
205
|
-
|
206
|
-
signing_key:
|
189
|
+
rubygems_version: 3.0.8
|
190
|
+
signing_key:
|
207
191
|
specification_version: 4
|
208
192
|
summary: this gem makes more gems!
|
209
193
|
test_files:
|
@@ -1,34 +0,0 @@
|
|
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: delete this line since you're in a hurry.}
|
14
|
-
spec.homepage = "https://github.com/<%=config[:author]%>/<%=config[:name]%>"
|
15
|
-
spec.license = "MIT"
|
16
|
-
|
17
|
-
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
|
-
spec.bindir = "exe"
|
19
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
|
-
spec.require_paths = ["lib"]
|
21
|
-
|
22
|
-
|
23
|
-
if spec.respond_to?(:metadata)
|
24
|
-
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."
|
25
|
-
end
|
26
|
-
|
27
|
-
spec.add_dependency "thor"
|
28
|
-
spec.add_dependency "service_installer"
|
29
|
-
|
30
|
-
spec.add_development_dependency "bundler", "~> <%= config[:bundler_version] %>"
|
31
|
-
spec.add_development_dependency "rake", "~> 10.0"
|
32
|
-
spec.add_development_dependency "pry"
|
33
|
-
|
34
|
-
end
|
@@ -1,21 +0,0 @@
|
|
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.
|
@@ -1,5 +0,0 @@
|
|
1
|
-
== What's This?
|
2
|
-
|
3
|
-
This is a gem skeleton template. Ideally you can define your own and place them into ~/.bundle/templates and specify to use that template instead of the default template defined in bundler.
|
4
|
-
|
5
|
-
This skelton would be helpful if you needed to create a new ruby app that ran as a service on the installed machine. This skelton should include the base code required for building a daemon style ruby app, including an installation command, a start/stop/restart/status interface and of course a spot that says "# your daemon code goes here" where you could easily drop in, say, a write to a log file and a sleep 5000 instruction and you'd be pretty much set for rapidly spinning up a new gem of the daemon type.
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# <%=config[:constant_name]%>
|
2
|
-
|
3
|
-
This is a service type gem! It runs as a daemon in the background!
|
4
|
-
|
5
|
-
TODO: Describe specifically what the service does, and why people would want to.
|
6
|
-
|
7
|
-
## Installation
|
8
|
-
|
9
|
-
Install the gem:
|
10
|
-
|
11
|
-
$ gem install <%=config[:name]%>
|
12
|
-
|
13
|
-
## Usage
|
14
|
-
|
15
|
-
TODO: Write usage instructions here
|
16
|
-
|
17
|
-
## Contributing
|
18
|
-
|
19
|
-
1. Fork it ( https://github.com/[my-github-username]/<%=config[:name]%>/fork )
|
20
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
21
|
-
3. Commit your changes (`git commit -am 'Add some feature'`)
|
22
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
23
|
-
5. Create a new Pull Request
|
@@ -1,25 +0,0 @@
|
|
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 -%>
|
@@ -1,27 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'thor'
|
4
|
-
require '<%=config[:namespaced_path]%>'
|
5
|
-
|
6
|
-
class BinRunner < Thor
|
7
|
-
|
8
|
-
desc "about", "About this file"
|
9
|
-
def about
|
10
|
-
<%=config[:constant_name]%>.about
|
11
|
-
end
|
12
|
-
|
13
|
-
desc "install", "This command checks the OS you're on and installs the gem as a service"
|
14
|
-
def install
|
15
|
-
<%=config[:constant_name]%>.install
|
16
|
-
end
|
17
|
-
|
18
|
-
desc "uninstall", "This command uninstalls the service from the OS"
|
19
|
-
def uninstall
|
20
|
-
<%=config[:constant_name]%>.uninstall
|
21
|
-
end
|
22
|
-
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
|
27
|
-
BinRunner.start
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require "service_installer"
|
2
|
-
|
3
|
-
require "<%=config[:namespaced_path]%>/version"
|
4
|
-
|
5
|
-
<%- config[:constant_array].each_with_index do |c,i| -%>
|
6
|
-
<%= ' '*i %>module <%= c %>
|
7
|
-
<%- end -%>
|
8
|
-
|
9
|
-
<%= ' '*config[:constant_array].size %># Your code goes here...
|
10
|
-
|
11
|
-
<%= ' '*config[:constant_array].size %>def self.About
|
12
|
-
<%= ' '*config[:constant_array].size %>end
|
13
|
-
|
14
|
-
<%= ' '*config[:constant_array].size %>def self.Install
|
15
|
-
<%= ' '*config[:constant_array].size %> # s = ServiceInstaller.new
|
16
|
-
<%= ' '*config[:constant_array].size %> # s.install
|
17
|
-
<%= ' '*config[:constant_array].size %>end
|
18
|
-
|
19
|
-
<%= ' '*config[:constant_array].size %>def self.Uninstall
|
20
|
-
<%= ' '*config[:constant_array].size %>end
|
21
|
-
|
22
|
-
<%- (config[:constant_array].size-1).downto(0) do |i| -%>
|
23
|
-
|
24
|
-
<%= ' '*i %>end
|
25
|
-
|
26
|
-
<%- end -%>
|