gem-release 1.0.0 → 2.0.0.dev.1
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 +4 -4
- data/Gemfile +13 -0
- data/Gemfile.lock +72 -0
- data/{lib/gem_release/templates/LICENSE → MIT-LICENSE.md} +3 -2
- data/README.md +646 -0
- data/README.md.erb +159 -0
- data/TODO.txt +194 -0
- data/lib/gem/release.rb +13 -0
- data/lib/gem/release/cmds.rb +16 -0
- data/lib/gem/release/cmds/base.rb +101 -0
- data/lib/gem/release/cmds/bootstrap.rb +222 -0
- data/lib/gem/release/cmds/bump.rb +165 -0
- data/lib/gem/release/cmds/gemspec.rb +85 -0
- data/lib/gem/release/cmds/release.rb +100 -0
- data/lib/gem/release/cmds/runner.rb +52 -0
- data/lib/gem/release/cmds/tag.rb +93 -0
- data/lib/gem/release/config.rb +42 -0
- data/lib/gem/release/config/env.rb +49 -0
- data/lib/gem/release/config/files.rb +35 -0
- data/lib/gem/release/context.rb +76 -0
- data/lib/gem/release/context/gem.rb +28 -0
- data/lib/gem/release/context/gemspec.rb +41 -0
- data/lib/gem/release/context/paths.rb +87 -0
- data/lib/gem/release/context/system.rb +36 -0
- data/lib/gem/release/data.rb +60 -0
- data/lib/gem/release/files/template.rb +61 -0
- data/lib/gem/release/files/template/context.rb +30 -0
- data/lib/gem/release/files/templates.rb +59 -0
- data/lib/gem/release/files/templates/group.rb +47 -0
- data/lib/gem/release/files/version.rb +68 -0
- data/lib/gem/release/helper.rb +45 -0
- data/lib/gem/release/helper/hash.rb +35 -0
- data/lib/gem/release/helper/string.rb +43 -0
- data/lib/gem/release/support/gem_command.rb +67 -0
- data/lib/gem/release/support/registry.rb +59 -0
- data/lib/gem/release/templates/.gitignore +8 -0
- data/lib/gem/release/templates/Gemfile +3 -0
- data/lib/gem/release/templates/gemspec +19 -0
- data/lib/gem/release/templates/licenses/mit.md +21 -0
- data/lib/gem/release/templates/licenses/mpl-2.md +373 -0
- data/lib/gem/release/templates/main.rb +1 -0
- data/lib/gem/release/templates/rspec/.rspec +3 -0
- data/lib/gem/release/templates/rspec/spec/spec_helper.rb +4 -0
- data/lib/gem/release/templates/travis/.travis.yml +1 -0
- data/lib/gem/release/templates/version.rb +1 -0
- data/lib/gem/release/version.rb +5 -0
- data/lib/gem/release/version/number.rb +102 -0
- data/lib/rubygems/commands/bootstrap_command.rb +4 -93
- data/lib/rubygems/commands/bump_command.rb +4 -110
- data/lib/rubygems/commands/gemspec_command.rb +5 -29
- data/lib/rubygems/commands/release_command.rb +4 -70
- data/lib/rubygems/commands/tag_command.rb +5 -46
- data/lib/rubygems_plugin.rb +8 -2
- metadata +56 -83
- data/lib/core_ext/hash/symbolize_keys.rb +0 -13
- data/lib/core_ext/kernel/silence.rb +0 -18
- data/lib/core_ext/string/camelize.rb +0 -5
- data/lib/gem_release.rb +0 -10
- data/lib/gem_release/command_options.rb +0 -31
- data/lib/gem_release/configuration.rb +0 -33
- data/lib/gem_release/gemspec_template.rb +0 -35
- data/lib/gem_release/helpers.rb +0 -104
- data/lib/gem_release/template.rb +0 -52
- data/lib/gem_release/templates/Gemfile +0 -3
- data/lib/gem_release/templates/README.md +0 -1
- data/lib/gem_release/templates/Rakefile +0 -10
- data/lib/gem_release/templates/gemspec +0 -18
- data/lib/gem_release/templates/gitignore +0 -25
- data/lib/gem_release/templates/test/test_helper.rb +0 -2
- data/lib/gem_release/templates/version.rb +0 -12
- data/lib/gem_release/version.rb +0 -3
- data/lib/gem_release/version_file.rb +0 -115
- data/lib/gem_release/version_template.rb +0 -14
@@ -1,48 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
include Helpers, CommandOptions
|
4
|
-
|
5
|
-
DEFAULTS = {
|
6
|
-
:quiet => false,
|
7
|
-
:destination => "origin"
|
8
|
-
}
|
9
|
-
|
10
|
-
attr_reader :arguments, :usage, :name
|
11
|
-
|
12
|
-
def initialize(options = {})
|
13
|
-
@name = 'tag'
|
14
|
-
super @name, 'Create a git tag and push it to the destination', default_options_with(options)
|
15
|
-
|
16
|
-
option :quiet, '-q', 'Do not output status messages'
|
17
|
-
option :destination, '-d', 'Git destination'
|
18
|
-
end
|
19
|
-
|
20
|
-
def execute
|
21
|
-
[:tag, :push].each do |task|
|
22
|
-
run_cmd(task)
|
23
|
-
end
|
1
|
+
require 'gem/release/support/gem_command'
|
2
|
+
require 'gem/release/cmds/tag'
|
24
3
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
protected
|
29
|
-
|
30
|
-
def tag
|
31
|
-
say "Creating git tag #{tag_name}" unless quiet?
|
32
|
-
system("git tag -am \"tag #{tag_name}\" #{tag_name}")
|
33
|
-
end
|
34
|
-
|
35
|
-
def push
|
36
|
-
unless options[:push_tags_only]
|
37
|
-
say "Pushing to the origin git repository" unless quiet?
|
38
|
-
return false unless system("git push #{options[:destination]}")
|
39
|
-
end
|
40
|
-
|
41
|
-
say "Pushing #{tag_name} to the #{options[:destination]} repository" unless quiet?
|
42
|
-
system("git push #{options[:destination]} #{tag_name}")
|
43
|
-
end
|
44
|
-
|
45
|
-
def tag_name
|
46
|
-
"v#{gem_version}"
|
47
|
-
end
|
4
|
+
class Gem::Commands::TagCommand < Gem::Command
|
5
|
+
include Gem::Release::GemCommand
|
6
|
+
self.cmd = :tag
|
48
7
|
end
|
data/lib/rubygems_plugin.rb
CHANGED
@@ -1,8 +1,14 @@
|
|
1
|
+
require 'gem/release'
|
1
2
|
require 'rubygems/command_manager'
|
2
|
-
require 'gem_release'
|
3
3
|
|
4
|
-
|
4
|
+
require 'rubygems/commands/bootstrap_command'
|
5
|
+
require 'rubygems/commands/bump_command'
|
6
|
+
require 'rubygems/commands/gemspec_command'
|
7
|
+
require 'rubygems/commands/release_command'
|
8
|
+
require 'rubygems/commands/tag_command'
|
9
|
+
|
5
10
|
Gem::CommandManager.instance.register_command :bootstrap
|
6
11
|
Gem::CommandManager.instance.register_command :bump
|
12
|
+
Gem::CommandManager.instance.register_command :gemspec
|
7
13
|
Gem::CommandManager.instance.register_command :release
|
8
14
|
Gem::CommandManager.instance.register_command :tag
|
metadata
CHANGED
@@ -1,106 +1,79 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gem-release
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0.dev.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sven Fuchs
|
8
|
+
- Dan Gebhardt
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
12
|
date: 2017-05-01 00:00:00.000000000 Z
|
12
|
-
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: test_declarative
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 0.0.2
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: 0.0.2
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: mocha
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0.14'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0.14'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rake
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: coveralls
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
13
|
+
dependencies: []
|
69
14
|
description: Release your ruby gems with ease. (What a bold statement for such a tiny
|
70
15
|
plugin ...)
|
71
|
-
email:
|
16
|
+
email:
|
17
|
+
- me@svenfuchs.com
|
72
18
|
executables: []
|
73
19
|
extensions: []
|
74
20
|
extra_rdoc_files: []
|
75
21
|
files:
|
76
|
-
-
|
77
|
-
-
|
78
|
-
-
|
79
|
-
-
|
80
|
-
-
|
81
|
-
-
|
82
|
-
- lib/
|
83
|
-
- lib/
|
84
|
-
- lib/
|
85
|
-
- lib/
|
86
|
-
- lib/
|
87
|
-
- lib/
|
88
|
-
- lib/
|
89
|
-
- lib/
|
90
|
-
- lib/
|
91
|
-
- lib/
|
92
|
-
- lib/
|
93
|
-
- lib/
|
94
|
-
- lib/
|
95
|
-
- lib/
|
22
|
+
- Gemfile
|
23
|
+
- Gemfile.lock
|
24
|
+
- MIT-LICENSE.md
|
25
|
+
- README.md
|
26
|
+
- README.md.erb
|
27
|
+
- TODO.txt
|
28
|
+
- lib/gem/release.rb
|
29
|
+
- lib/gem/release/cmds.rb
|
30
|
+
- lib/gem/release/cmds/base.rb
|
31
|
+
- lib/gem/release/cmds/bootstrap.rb
|
32
|
+
- lib/gem/release/cmds/bump.rb
|
33
|
+
- lib/gem/release/cmds/gemspec.rb
|
34
|
+
- lib/gem/release/cmds/release.rb
|
35
|
+
- lib/gem/release/cmds/runner.rb
|
36
|
+
- lib/gem/release/cmds/tag.rb
|
37
|
+
- lib/gem/release/config.rb
|
38
|
+
- lib/gem/release/config/env.rb
|
39
|
+
- lib/gem/release/config/files.rb
|
40
|
+
- lib/gem/release/context.rb
|
41
|
+
- lib/gem/release/context/gem.rb
|
42
|
+
- lib/gem/release/context/gemspec.rb
|
43
|
+
- lib/gem/release/context/paths.rb
|
44
|
+
- lib/gem/release/context/system.rb
|
45
|
+
- lib/gem/release/data.rb
|
46
|
+
- lib/gem/release/files/template.rb
|
47
|
+
- lib/gem/release/files/template/context.rb
|
48
|
+
- lib/gem/release/files/templates.rb
|
49
|
+
- lib/gem/release/files/templates/group.rb
|
50
|
+
- lib/gem/release/files/version.rb
|
51
|
+
- lib/gem/release/helper.rb
|
52
|
+
- lib/gem/release/helper/hash.rb
|
53
|
+
- lib/gem/release/helper/string.rb
|
54
|
+
- lib/gem/release/support/gem_command.rb
|
55
|
+
- lib/gem/release/support/registry.rb
|
56
|
+
- lib/gem/release/templates/.gitignore
|
57
|
+
- lib/gem/release/templates/Gemfile
|
58
|
+
- lib/gem/release/templates/gemspec
|
59
|
+
- lib/gem/release/templates/licenses/mit.md
|
60
|
+
- lib/gem/release/templates/licenses/mpl-2.md
|
61
|
+
- lib/gem/release/templates/main.rb
|
62
|
+
- lib/gem/release/templates/rspec/.rspec
|
63
|
+
- lib/gem/release/templates/rspec/spec/spec_helper.rb
|
64
|
+
- lib/gem/release/templates/travis/.travis.yml
|
65
|
+
- lib/gem/release/templates/version.rb
|
66
|
+
- lib/gem/release/version.rb
|
67
|
+
- lib/gem/release/version/number.rb
|
96
68
|
- lib/rubygems/commands/bootstrap_command.rb
|
97
69
|
- lib/rubygems/commands/bump_command.rb
|
98
70
|
- lib/rubygems/commands/gemspec_command.rb
|
99
71
|
- lib/rubygems/commands/release_command.rb
|
100
72
|
- lib/rubygems/commands/tag_command.rb
|
101
73
|
- lib/rubygems_plugin.rb
|
102
|
-
homepage:
|
103
|
-
licenses:
|
74
|
+
homepage: https://github.com/svenfuchs/gem-release
|
75
|
+
licenses:
|
76
|
+
- MIT
|
104
77
|
metadata: {}
|
105
78
|
post_install_message:
|
106
79
|
rdoc_options: []
|
@@ -113,9 +86,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
113
86
|
version: '0'
|
114
87
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
88
|
requirements:
|
116
|
-
- - "
|
89
|
+
- - ">"
|
117
90
|
- !ruby/object:Gem::Version
|
118
|
-
version: 1.3.
|
91
|
+
version: 1.3.1
|
119
92
|
requirements: []
|
120
93
|
rubyforge_project:
|
121
94
|
rubygems_version: 2.6.11
|
@@ -1,13 +0,0 @@
|
|
1
|
-
class Hash
|
2
|
-
|
3
|
-
#taken from https://gist.github.com/tommeier/1479299
|
4
|
-
def deep_symbolize_keys!
|
5
|
-
self.keys.each do |k|
|
6
|
-
new_key = k.to_sym
|
7
|
-
current_value = self.delete(k)
|
8
|
-
self[new_key] = current_value.is_a?(Hash) ? current_value.dup.deep_symbolize_keys! : current_value
|
9
|
-
end
|
10
|
-
self
|
11
|
-
end
|
12
|
-
|
13
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
module Kernel
|
2
|
-
def silence
|
3
|
-
silence_stream(STDOUT, STDERR) { yield }
|
4
|
-
end
|
5
|
-
|
6
|
-
def silence_stream(*streams)
|
7
|
-
on_hold = streams.collect{ |stream| stream.dup }
|
8
|
-
streams.each do |stream|
|
9
|
-
stream.reopen(RUBY_PLATFORM =~ /mswin|mingw/ ? 'NUL:' : '/dev/null')
|
10
|
-
stream.sync = true
|
11
|
-
end
|
12
|
-
yield
|
13
|
-
ensure
|
14
|
-
streams.each_with_index do |stream, i|
|
15
|
-
stream.reopen(on_hold[i])
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
data/lib/gem_release.rb
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
module GemRelease
|
2
|
-
autoload :CommandOptions, 'gem_release/command_options'
|
3
|
-
autoload :GemspecTemplate, 'gem_release/gemspec_template'
|
4
|
-
autoload :Helpers, 'gem_release/helpers'
|
5
|
-
autoload :Template, 'gem_release/template'
|
6
|
-
autoload :Version, 'gem_release/version'
|
7
|
-
autoload :VersionFile, 'gem_release/version_file'
|
8
|
-
autoload :VersionTemplate, 'gem_release/version_template'
|
9
|
-
autoload :Configuration, 'gem_release/configuration'
|
10
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
module GemRelease
|
2
|
-
module CommandOptions
|
3
|
-
def initialize(*args)
|
4
|
-
@arguments = ''
|
5
|
-
super
|
6
|
-
end
|
7
|
-
|
8
|
-
def default_options_with(passed_opts)
|
9
|
-
self.class::DEFAULTS.merge(Configuration.new[name.to_sym]).merge(passed_opts)
|
10
|
-
end
|
11
|
-
|
12
|
-
def option(key, short, description)
|
13
|
-
default = Configuration.new[name.to_sym][key] || self.class::DEFAULTS[key]
|
14
|
-
|
15
|
-
if default.is_a?(String)
|
16
|
-
long = "--#{key} #{key.to_s.upcase}"
|
17
|
-
if default == ''
|
18
|
-
default_description = 'not set by default'
|
19
|
-
else
|
20
|
-
default_description = "defaults to #{default}"
|
21
|
-
end
|
22
|
-
args = [short, long, String, "#{description} (#{default_description})"]
|
23
|
-
else
|
24
|
-
long = "--[no-]#{key}"
|
25
|
-
args = [short, long, "#{description} (defaults to #{default})"]
|
26
|
-
end
|
27
|
-
|
28
|
-
add_option(*args) { |value, options| options[key] = value }
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
require 'yaml'
|
2
|
-
require 'core_ext/hash/symbolize_keys'
|
3
|
-
|
4
|
-
class Configuration
|
5
|
-
|
6
|
-
attr_reader :options
|
7
|
-
|
8
|
-
def initialize
|
9
|
-
load_options!
|
10
|
-
end
|
11
|
-
|
12
|
-
def load_options!
|
13
|
-
@options = Hash.new { |hash, key| hash[key] = {} }
|
14
|
-
if File.exist?(conf_path.to_s) && !File.directory?(conf_path.to_s)
|
15
|
-
config_hash = YAML.load(File.read(conf_path))
|
16
|
-
if config_hash
|
17
|
-
@options.merge!(config_hash.deep_symbolize_keys!)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def conf_path
|
23
|
-
File.expand_path(Dir.glob('**/.gemrelease').first.to_s)
|
24
|
-
end
|
25
|
-
|
26
|
-
def []=(key,val)
|
27
|
-
options[key] = val
|
28
|
-
end
|
29
|
-
|
30
|
-
def [](key)
|
31
|
-
options[key]
|
32
|
-
end
|
33
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
module GemRelease
|
2
|
-
class GemspecTemplate < Template
|
3
|
-
attr_reader :author, :email, :homepage, :summary, :description, :strategy
|
4
|
-
|
5
|
-
def initialize(options = {})
|
6
|
-
super('gemspec', options)
|
7
|
-
|
8
|
-
@author ||= user_name
|
9
|
-
@email ||= user_email
|
10
|
-
@homepage ||= "https://github.com/#{github_user}/#{name}" || "[your github name]"
|
11
|
-
|
12
|
-
@summary ||= 'TODO: summary'
|
13
|
-
@description ||= 'TODO: description'
|
14
|
-
|
15
|
-
@strategy = options[:strategy]
|
16
|
-
end
|
17
|
-
|
18
|
-
def files
|
19
|
-
case strategy
|
20
|
-
when 'git'
|
21
|
-
'`git ls-files app lib`.split("\n")'
|
22
|
-
else
|
23
|
-
'Dir.glob("{lib/**/*,[A-Z]*}")'
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def exists?
|
28
|
-
File.exists?(filename)
|
29
|
-
end
|
30
|
-
|
31
|
-
def filename
|
32
|
-
"#{name}.gemspec"
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
data/lib/gem_release/helpers.rb
DELETED
@@ -1,104 +0,0 @@
|
|
1
|
-
require 'core_ext/string/camelize'
|
2
|
-
|
3
|
-
module GemRelease
|
4
|
-
module Helpers
|
5
|
-
def quiet?
|
6
|
-
options[:quiet]
|
7
|
-
end
|
8
|
-
|
9
|
-
def user_name
|
10
|
-
`git config --get user.name`.strip
|
11
|
-
end
|
12
|
-
|
13
|
-
def user_email
|
14
|
-
`git config --get user.email`.strip
|
15
|
-
end
|
16
|
-
|
17
|
-
def github_user
|
18
|
-
`git config --get github.user`.strip
|
19
|
-
end
|
20
|
-
|
21
|
-
def github_token
|
22
|
-
`git config --get github.token`.strip
|
23
|
-
end
|
24
|
-
|
25
|
-
def gem_name
|
26
|
-
gemspec ? gemspec.name : gem_name_from_directory
|
27
|
-
end
|
28
|
-
|
29
|
-
def gem_name_from_directory
|
30
|
-
File.basename(Dir.pwd)
|
31
|
-
end
|
32
|
-
|
33
|
-
def gem_filename
|
34
|
-
gemspec.file_name
|
35
|
-
end
|
36
|
-
|
37
|
-
def gem_version
|
38
|
-
gemspec.version.to_s
|
39
|
-
end
|
40
|
-
|
41
|
-
def gemspec
|
42
|
-
Gem::Specification.load(gemspec_filename)
|
43
|
-
rescue LoadError, RuntimeError
|
44
|
-
nil
|
45
|
-
end
|
46
|
-
|
47
|
-
def gemspec_filename
|
48
|
-
name = Array(options[:args]).first rescue nil
|
49
|
-
name ||= Dir['*.gemspec'].first
|
50
|
-
name || raise("No gemspec found or given.")
|
51
|
-
end
|
52
|
-
|
53
|
-
def in_gemspec_dirs
|
54
|
-
gemspec_dirs.each do |dir|
|
55
|
-
Dir.chdir(dir) { yield }
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
def gemspec_dirs
|
60
|
-
filter_gemspecs(Dir.glob('**/*.gemspec'))
|
61
|
-
end
|
62
|
-
|
63
|
-
def filter_gemspecs(files)
|
64
|
-
files.reject { |i| i[/^vendor/i] }.map { |spec| File.dirname(spec) }
|
65
|
-
end
|
66
|
-
|
67
|
-
def in_bootstrapped_dir
|
68
|
-
dir = Array(options[:args]).first rescue nil
|
69
|
-
if dir && dir.kind_of?(String) && dir[0] != '-'
|
70
|
-
Dir.mkdir dir
|
71
|
-
Dir.chdir(dir) { yield }
|
72
|
-
else
|
73
|
-
yield
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
def reset_gemspec_cache
|
78
|
-
# Gemspecs are cached in rubygems >= 2.1, so we need to clear the cache
|
79
|
-
# in case gem versions have changed.
|
80
|
-
#
|
81
|
-
# Note: This is not needed or supported with older rubygems, which is
|
82
|
-
# why exceptions are swallowed.
|
83
|
-
begin
|
84
|
-
Gem::Specification.reset
|
85
|
-
rescue
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
def run_cmd(command)
|
90
|
-
reset_gemspec_cache
|
91
|
-
|
92
|
-
unless send(command)
|
93
|
-
say "The task `#{command}` could not be completed. Subsequent tasks will not be attempted."
|
94
|
-
abort
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
def success
|
99
|
-
unless quiet? || options[:quiet_success]
|
100
|
-
say "All is good, thanks my friend.\n"
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|