creategem 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.ruby-version +1 -0
- data/Gemfile +4 -0
- data/README.md +51 -0
- data/Rakefile +38 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/creategem.gemspec +28 -0
- data/exe/creategem +3 -0
- data/lib/creategem/cli.rb +73 -0
- data/lib/creategem/git.rb +26 -0
- data/lib/creategem/repository.rb +44 -0
- data/lib/creategem/version.rb +3 -0
- data/lib/creategem.rb +6 -0
- data/templates/LICENCE.txt +21 -0
- data/templates/executable_scaffold/exe/%gem_name%.tt +3 -0
- data/templates/executable_scaffold/lib/%gem_name%/cli.rb.tt +13 -0
- data/templates/gem_scaffold/%gem_name%.gemspec.tt +36 -0
- data/templates/gem_scaffold/.gitignore +9 -0
- data/templates/gem_scaffold/.ruby-version +1 -0
- data/templates/gem_scaffold/Gemfile.tt +4 -0
- data/templates/gem_scaffold/README.md.tt +41 -0
- data/templates/gem_scaffold/Rakefile.tt +42 -0
- data/templates/gem_scaffold/bin/console +14 -0
- data/templates/gem_scaffold/bin/setup +8 -0
- data/templates/gem_scaffold/lib/%gem_name%/version.rb.tt +3 -0
- data/templates/gem_scaffold/lib/%gem_name%.rb.tt +4 -0
- data/templates/gem_scaffold/test/%gem_name%_test.rb.tt +7 -0
- data/templates/gem_scaffold/test/test_helper.rb.tt +7 -0
- metadata +187 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 3a795d632ce3654bb474978c1c20ef678a290aa1
|
4
|
+
data.tar.gz: ad27d6a54a417b7b97eacec45c0382a7849c5bfe
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c0e654e4fecf8c534d504ec395e61736d5f3b4264fbc444e9a42cc1767ac0b65aeb3ded5073e38a479dd1cacbe733f17d2f420b64cf6f65fad0c472fc68c1a00
|
7
|
+
data.tar.gz: ccdf813b5be98b9c12b91f701949d2397a3d0bce654bf549c085f0e1fc1e4aaccd92b73b137dab088d19c44abf193da9826c15732c0cd7ffee9e9e249cc29938
|
data/.gitignore
ADDED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.3.0
|
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
# Creategem
|
2
|
+
|
3
|
+
Creategem creates a scaffold project for a new gem that already has a remote repository (Github or Bitbucket) and is ready to be released in a private or public gem server.
|
4
|
+
|
5
|
+
This project was inspired by the Bundler's `bundle gem GEM command and by the great article [Deveoping a RubyGem using Bundler](https://github.com/radar/guides/blob/master/gem-development.md) by @radar.
|
6
|
+
|
7
|
+
Similar to what Bundler's bundle gem command does, this gem generates a scaffold with all files you need to start, but it also has some additional features.
|
8
|
+
|
9
|
+
Features:
|
10
|
+
- automatically creates local and remote git repository (bitbucket or github) for your gem
|
11
|
+
- automatically release patches, minor and major versions without having to manually increase versions (thanks to [gem-release](https://github.com/svenfuchs/gem-release))
|
12
|
+
- executable based on [Thor](http://whatisthor.com) (can be omited with --no-executable)
|
13
|
+
- test infrastructure based on minitest
|
14
|
+
- release to rubygems.org or to private geminabox gem server
|
15
|
+
|
16
|
+
|
17
|
+
## Installation
|
18
|
+
|
19
|
+
$ gem install creategem
|
20
|
+
|
21
|
+
|
22
|
+
## Usage
|
23
|
+
|
24
|
+
$ creategem gem GEM_NAME [--public] [--no-executable]
|
25
|
+
|
26
|
+
When called without any options it is assumed that you want a gem with an executable and hosted in a private bitbucket git repository, and released on a private Geminabox server.
|
27
|
+
|
28
|
+
During the creation you will be asked for your bitbucket user name and the url of your geminabox gem server (only the first time, as the user name and the gem server url are saved in your git global config). You will also be asked to enter your bitbucket password when the remote repository is created for you with the bitbucket rest api.
|
29
|
+
|
30
|
+
When you use the --public option a github repository is created for the gem and on release the gem is pushed to rubygems.org.
|
31
|
+
|
32
|
+
During the creation you will be asked for your github user name (only the first time, as the user name is saved in your git global config). You will also be asked to enter your github password when the remote repository is created for you with the github rest api.
|
33
|
+
|
34
|
+
Per default a gem is created with an executable based on Thor, but you can omit the executable with the option --no-executable.
|
35
|
+
|
36
|
+
After you create the gem, edit your gemspec and change the summary and the description, commit the changes to git and invoke `rake release_patch` and your gem is being released.
|
37
|
+
|
38
|
+
|
39
|
+
## Development
|
40
|
+
|
41
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
42
|
+
|
43
|
+
To install this gem onto your local machine, run `bundle exec rake install`.
|
44
|
+
|
45
|
+
To release a new version, run `bundle exec rake release_patch`, `bundle exec rake release_minor`, oder `bundle exec rake release_major`,
|
46
|
+
which will create a git tag for the version, push git commits and tags, and push the `.gem` file to https://rubygems.org.
|
47
|
+
|
48
|
+
## Contributing
|
49
|
+
|
50
|
+
Bug reports and pull requests are welcome on Github at https://github.com/igorj/creategem.
|
51
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require "rake/testtask"
|
3
|
+
|
4
|
+
Rake::TestTask.new(:test) do |t|
|
5
|
+
t.libs << "test"
|
6
|
+
t.libs << "lib"
|
7
|
+
t.test_files = FileList['test/**/*_test.rb']
|
8
|
+
end
|
9
|
+
|
10
|
+
task :patch do
|
11
|
+
system "gem bump --tag"
|
12
|
+
end
|
13
|
+
|
14
|
+
task :minor do
|
15
|
+
system "gem bump --version minor --tag"
|
16
|
+
end
|
17
|
+
|
18
|
+
task :major do
|
19
|
+
system "gem bump --version major --tag"
|
20
|
+
end
|
21
|
+
|
22
|
+
task :publish => [:build] do
|
23
|
+
$VERBOSE = nil
|
24
|
+
load 'creategem/version.rb'
|
25
|
+
system "gem push pkg/creategem-#{Creategem::VERSION}.gem"
|
26
|
+
end
|
27
|
+
|
28
|
+
desc "Bump patch version, create git tag, build the gem and release to geminabox (default)"
|
29
|
+
task :release_patch => [:test, :patch, :publish]
|
30
|
+
|
31
|
+
desc "Bump minor version, create git tag, build the gem and release to geminabox"
|
32
|
+
task :release_minor => [:test, :minor, :publish]
|
33
|
+
|
34
|
+
desc "Bump major version, create git tag, build the gem and release to geminabox"
|
35
|
+
task :release_major => [:test, :major, :publish]
|
36
|
+
|
37
|
+
|
38
|
+
task :default => :test
|
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "creategem"
|
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
|
data/bin/setup
ADDED
data/creategem.gemspec
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
$LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
|
2
|
+
require 'creategem/version'
|
3
|
+
|
4
|
+
Gem::Specification.new do |spec|
|
5
|
+
spec.name = "creategem"
|
6
|
+
spec.version = Creategem::VERSION
|
7
|
+
spec.authors = ["Igor Jancev"]
|
8
|
+
spec.email = ["igor@masterybits.com"]
|
9
|
+
spec.summary = %q{Creategem creates a scaffold project for new gems}
|
10
|
+
spec.description = %q{Creategem creates a scaffold project for new gems. You can choose between Github and Bitbucket,
|
11
|
+
Rubygems or Geminabox, with executable or without, etc.}
|
12
|
+
spec.homepage = "https://github.com/igorj/creategem"
|
13
|
+
|
14
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^test/}) }
|
15
|
+
spec.bindir = "exe"
|
16
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
17
|
+
spec.require_paths = ["lib"]
|
18
|
+
|
19
|
+
spec.add_development_dependency "bundler", "~> 1.11"
|
20
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
21
|
+
spec.add_development_dependency "minitest", "~> 5.8"
|
22
|
+
spec.add_development_dependency "minitest-reporters", "~> 1.1"
|
23
|
+
spec.add_development_dependency "gem-release", "~> 0.7"
|
24
|
+
spec.add_development_dependency "geminabox", "~> 0.13"
|
25
|
+
|
26
|
+
spec.add_dependency "thor", "~> 0.19"
|
27
|
+
spec.add_dependency "git", "~> 1.3"
|
28
|
+
end
|
data/exe/creategem
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'git'
|
2
|
+
require 'creategem'
|
3
|
+
|
4
|
+
# Creategem::CLI is a Thor class that is invoked when a user runs a creategem executable
|
5
|
+
module Creategem
|
6
|
+
class CLI < Thor
|
7
|
+
include Thor::Actions
|
8
|
+
include Creategem::Git
|
9
|
+
|
10
|
+
# there has to be a method gem_name to use gem_name in the file names in the template directory: %gem_name%
|
11
|
+
attr_accessor :gem_name
|
12
|
+
|
13
|
+
# this is where the thor generator templates are found
|
14
|
+
def self.source_root
|
15
|
+
File.expand_path('../../../templates', __FILE__)
|
16
|
+
end
|
17
|
+
|
18
|
+
desc "gem NAME", "Creates a new gem with a given NAME with Bitbucket git repository and private geminabox gem repository; Options: --public (Github/Rubygems), --no-executable"
|
19
|
+
option :public, type: :boolean, default: false, desc: "When true, Github and Rubygems are used, otherwise Bitbucket and Geminabox are used (default)"
|
20
|
+
option :executable, type: :boolean, default: true, desc: "When true, gem with executable is created"
|
21
|
+
def gem(gem_name)
|
22
|
+
say "Create a gem scaffold for gem named: #{gem_name}", :green
|
23
|
+
@gem_name = gem_name
|
24
|
+
@class_name = Thor::Util.camel_case(gem_name)
|
25
|
+
@executable = options[:executable]
|
26
|
+
vendor = options[:public] ? :github : :bitbucket
|
27
|
+
@repository = Creategem::Repository.new(vendor: vendor,
|
28
|
+
user: git_repository_user_name(vendor),
|
29
|
+
name: gem_name,
|
30
|
+
gem_server_url: gem_server_url(vendor))
|
31
|
+
directory "gem_scaffold", gem_name
|
32
|
+
if @executable
|
33
|
+
directory "executable_scaffold", gem_name
|
34
|
+
end
|
35
|
+
if @repository.public?
|
36
|
+
template "LICENCE.txt", "#{gem_name}/LICENCE.txt"
|
37
|
+
end
|
38
|
+
Dir.chdir gem_name do
|
39
|
+
create_local_git_repository
|
40
|
+
run "bundle install"
|
41
|
+
create_remote_git_repository(@repository)
|
42
|
+
end
|
43
|
+
say "The gem #{gem_name} was successfully created.", :green
|
44
|
+
say "Please complete the information in #{gem_name}.gemspec and README.md (look for TODOs).", :blue
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
def git_repository_user_name(vendor)
|
50
|
+
git_config_key = "creategem.#{vendor}user"
|
51
|
+
user = ::Git.global_config(git_config_key)
|
52
|
+
if user.nil? || user.empty?
|
53
|
+
user = ask("What is your #{vendor} user name?")
|
54
|
+
::Git.global_config(git_config_key, user)
|
55
|
+
end
|
56
|
+
user
|
57
|
+
end
|
58
|
+
|
59
|
+
def gem_server_url(vendor)
|
60
|
+
if vendor == :github
|
61
|
+
"https://rubygems.org"
|
62
|
+
else
|
63
|
+
git_config_key = "creategem.gemserver"
|
64
|
+
url = ::Git.global_config(git_config_key)
|
65
|
+
if url.nil? || url.empty?
|
66
|
+
url = ask("What is the url of your geminabox server?")
|
67
|
+
::Git.global_config(git_config_key, url)
|
68
|
+
end
|
69
|
+
url
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'thor'
|
2
|
+
|
3
|
+
module Creategem
|
4
|
+
module Git
|
5
|
+
include Thor::Actions
|
6
|
+
|
7
|
+
def create_local_git_repository
|
8
|
+
say "Create local git repository", :green
|
9
|
+
run "git init"
|
10
|
+
run "git add ."
|
11
|
+
run "git commit -aqm 'Initial commit'"
|
12
|
+
end
|
13
|
+
|
14
|
+
def create_remote_git_repository(repository)
|
15
|
+
say "Create remote #{repository.vendor} repository", :green
|
16
|
+
if repository.github?
|
17
|
+
run "curl -u '#{repository.user}' https://api.github.com/user/repos -d '{\"name\":\"#{repository.name}\"}'"
|
18
|
+
else
|
19
|
+
run "curl --request POST --user #{repository.user} https://api.bitbucket.org/1.0/repositories/ --data name=#{repository.name} --data scm=git --data is_private=true"
|
20
|
+
end
|
21
|
+
run "git remote add origin #{repository.origin}"
|
22
|
+
say "Push initial commit to remote #{repository.vendor} repository", :green
|
23
|
+
run "git push -u origin master"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'git'
|
2
|
+
|
3
|
+
# Creategem::Repository contains informations about the git repository and the git user
|
4
|
+
module Creategem
|
5
|
+
class Repository
|
6
|
+
REPOSITORIES = { github: "github.com", bitbucket: "bitbucket.org" }
|
7
|
+
|
8
|
+
attr_reader :vendor, :name, :user, :user_name, :user_email, :gem_server_url
|
9
|
+
|
10
|
+
def initialize(options)
|
11
|
+
@vendor = options[:vendor]
|
12
|
+
@name = options[:name]
|
13
|
+
@user = options[:user]
|
14
|
+
@user_name = ::Git.global_config "user.name"
|
15
|
+
@user_email = ::Git.global_config "user.email"
|
16
|
+
@gem_server_url = options[:gem_server_url]
|
17
|
+
end
|
18
|
+
|
19
|
+
def github?
|
20
|
+
vendor == :github
|
21
|
+
end
|
22
|
+
|
23
|
+
def bitbucket?
|
24
|
+
vendor == :bitbucket
|
25
|
+
end
|
26
|
+
|
27
|
+
# this could change later. For now all private repositories are on bitbucket and all private ones on github
|
28
|
+
def private?
|
29
|
+
bitbucket?
|
30
|
+
end
|
31
|
+
|
32
|
+
def public?
|
33
|
+
!private?
|
34
|
+
end
|
35
|
+
|
36
|
+
def url
|
37
|
+
"https://#{REPOSITORIES[vendor]}/#{user}/#{name}"
|
38
|
+
end
|
39
|
+
|
40
|
+
def origin
|
41
|
+
"git@#{REPOSITORIES[vendor]}:#{user}/#{name}.git"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/lib/creategem.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2016 <%= @repository.user_name %>
|
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,13 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require '<%= @gem_name %>'
|
3
|
+
|
4
|
+
module <%= @class_name %>
|
5
|
+
class CLI < Thor
|
6
|
+
include Thor::Actions
|
7
|
+
|
8
|
+
desc "do_something NAME", "TODO task description"
|
9
|
+
def do_something(name)
|
10
|
+
puts "TODO do something with: #{name}"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
$LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
|
2
|
+
require '<%= @gem_name %>/version'
|
3
|
+
|
4
|
+
Gem::Specification.new do |spec|
|
5
|
+
spec.name = "<%= @gem_name %>"
|
6
|
+
spec.version = <%= @class_name %>::VERSION
|
7
|
+
spec.authors = ["<%= @repository.user_name %>"]
|
8
|
+
spec.email = ["<%= @repository.user_email %>"]
|
9
|
+
spec.summary = %q{TODO Summary what the gem is for}
|
10
|
+
spec.description = %q{TODO Longer description of the gem}
|
11
|
+
spec.homepage = "<%= @repository.url %>"
|
12
|
+
<% if @repository.public? -%>
|
13
|
+
spec.license = "MIT"
|
14
|
+
<% end -%>
|
15
|
+
|
16
|
+
<% if @repository.private? -%>
|
17
|
+
spec.metadata['allowed_push_host'] = "<%= @repository.gem_server_url %>"
|
18
|
+
<% end -%>
|
19
|
+
|
20
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^test/}) }
|
21
|
+
<% if @executable -%>
|
22
|
+
spec.bindir = "exe"
|
23
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
|
+
<% end -%>
|
25
|
+
spec.require_paths = ["lib"]
|
26
|
+
|
27
|
+
spec.add_development_dependency "bundler", "~> 1.11"
|
28
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
29
|
+
spec.add_development_dependency "minitest", "~> 5.8"
|
30
|
+
spec.add_development_dependency "minitest-reporters", "~> 1.1"
|
31
|
+
spec.add_development_dependency "gem-release", "~> 0.7"
|
32
|
+
spec.add_development_dependency "geminabox", "~> 0.13"
|
33
|
+
<% if @executable -%>
|
34
|
+
spec.add_dependency "thor", "~> 0.19"
|
35
|
+
<% end %>
|
36
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
2.3.0
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# <%= @class_name %>
|
2
|
+
|
3
|
+
TODO Description of <%= @class_name %>
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem '<%= @gem_name %>'
|
11
|
+
```
|
12
|
+
|
13
|
+
And then execute:
|
14
|
+
|
15
|
+
$ bundle
|
16
|
+
|
17
|
+
Or install it yourself as:
|
18
|
+
|
19
|
+
$ gem install <%= @gem_name %>
|
20
|
+
|
21
|
+
## Usage
|
22
|
+
|
23
|
+
TODO Describe how to use this gem
|
24
|
+
|
25
|
+
## Development
|
26
|
+
|
27
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
28
|
+
|
29
|
+
To install this gem onto your local machine, run `bundle exec rake install`.
|
30
|
+
|
31
|
+
To release a new version, run `bundle exec rake release_patch`, `bundle exec rake release_minor`, oder `bundle exec rake release_major`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to <%= @repository.gem_server_url -%>.
|
32
|
+
|
33
|
+
## Contributing
|
34
|
+
|
35
|
+
Bug reports and pull requests are welcome on <%= @repository.vendor %> at <%= @repository.url %>.
|
36
|
+
|
37
|
+
<% if @repository.public? -%>
|
38
|
+
## License
|
39
|
+
|
40
|
+
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
41
|
+
<% end %>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require "rake/testtask"
|
3
|
+
|
4
|
+
Rake::TestTask.new(:test) do |t|
|
5
|
+
t.libs << "test"
|
6
|
+
t.libs << "lib"
|
7
|
+
t.test_files = FileList['test/**/*_test.rb']
|
8
|
+
end
|
9
|
+
|
10
|
+
task :patch do
|
11
|
+
system "gem bump --tag"
|
12
|
+
end
|
13
|
+
|
14
|
+
task :minor do
|
15
|
+
system "gem bump --version minor --tag"
|
16
|
+
end
|
17
|
+
|
18
|
+
task :major do
|
19
|
+
system "gem bump --version major --tag"
|
20
|
+
end
|
21
|
+
|
22
|
+
task :publish => [:build] do
|
23
|
+
$VERBOSE = nil
|
24
|
+
load '<%= @gem_name %>/version.rb'
|
25
|
+
<% if @repository.private? -%>
|
26
|
+
system "gem inabox pkg/<%= @gem_name %>-#{<%= @class_name %>::VERSION}.gem"
|
27
|
+
<% else -%>
|
28
|
+
system "gem push pkg/<%= @gem_name %>-#{<%= @class_name %>::VERSION}.gem"
|
29
|
+
<% end -%>
|
30
|
+
end
|
31
|
+
|
32
|
+
desc "Bump patch version, create git tag, build the gem and release to geminabox (default)"
|
33
|
+
task :release_patch => [:test, :patch, :publish]
|
34
|
+
|
35
|
+
desc "Bump minor version, create git tag, build the gem and release to geminabox"
|
36
|
+
task :release_minor => [:test, :minor, :publish]
|
37
|
+
|
38
|
+
desc "Bump major version, create git tag, build the gem and release to geminabox"
|
39
|
+
task :release_major => [:test, :major, :publish]
|
40
|
+
|
41
|
+
|
42
|
+
task :default => :test
|
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "<%= @gem_name %>"
|
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
|
metadata
ADDED
@@ -0,0 +1,187 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: creategem
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Igor Jancev
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-04-13 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.11'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.11'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '5.8'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '5.8'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: minitest-reporters
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.1'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.1'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: gem-release
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.7'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.7'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: geminabox
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.13'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.13'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: thor
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.19'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.19'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: git
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '1.3'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '1.3'
|
125
|
+
description: |-
|
126
|
+
Creategem creates a scaffold project for new gems. You can choose between Github and Bitbucket,
|
127
|
+
Rubygems or Geminabox, with executable or without, etc.
|
128
|
+
email:
|
129
|
+
- igor@masterybits.com
|
130
|
+
executables:
|
131
|
+
- creategem
|
132
|
+
extensions: []
|
133
|
+
extra_rdoc_files: []
|
134
|
+
files:
|
135
|
+
- ".gitignore"
|
136
|
+
- ".ruby-version"
|
137
|
+
- Gemfile
|
138
|
+
- README.md
|
139
|
+
- Rakefile
|
140
|
+
- bin/console
|
141
|
+
- bin/setup
|
142
|
+
- creategem.gemspec
|
143
|
+
- exe/creategem
|
144
|
+
- lib/creategem.rb
|
145
|
+
- lib/creategem/cli.rb
|
146
|
+
- lib/creategem/git.rb
|
147
|
+
- lib/creategem/repository.rb
|
148
|
+
- lib/creategem/version.rb
|
149
|
+
- templates/LICENCE.txt
|
150
|
+
- templates/executable_scaffold/exe/%gem_name%.tt
|
151
|
+
- templates/executable_scaffold/lib/%gem_name%/cli.rb.tt
|
152
|
+
- templates/gem_scaffold/%gem_name%.gemspec.tt
|
153
|
+
- templates/gem_scaffold/.gitignore
|
154
|
+
- templates/gem_scaffold/.ruby-version
|
155
|
+
- templates/gem_scaffold/Gemfile.tt
|
156
|
+
- templates/gem_scaffold/README.md.tt
|
157
|
+
- templates/gem_scaffold/Rakefile.tt
|
158
|
+
- templates/gem_scaffold/bin/console
|
159
|
+
- templates/gem_scaffold/bin/setup
|
160
|
+
- templates/gem_scaffold/lib/%gem_name%.rb.tt
|
161
|
+
- templates/gem_scaffold/lib/%gem_name%/version.rb.tt
|
162
|
+
- templates/gem_scaffold/test/%gem_name%_test.rb.tt
|
163
|
+
- templates/gem_scaffold/test/test_helper.rb.tt
|
164
|
+
homepage: https://github.com/igorj/creategem
|
165
|
+
licenses: []
|
166
|
+
metadata: {}
|
167
|
+
post_install_message:
|
168
|
+
rdoc_options: []
|
169
|
+
require_paths:
|
170
|
+
- lib
|
171
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
172
|
+
requirements:
|
173
|
+
- - ">="
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
version: '0'
|
176
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
requirements: []
|
182
|
+
rubyforge_project:
|
183
|
+
rubygems_version: 2.5.1
|
184
|
+
signing_key:
|
185
|
+
specification_version: 4
|
186
|
+
summary: Creategem creates a scaffold project for new gems
|
187
|
+
test_files: []
|