rake-release 0.4.0 → 0.5.0

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
  SHA1:
3
- metadata.gz: 4c15844cf0ddcb1c04e6e96c6e7619549327f389
4
- data.tar.gz: 488040f7a8e55d54fcbdd8a02030e6ba5ae83589
3
+ metadata.gz: 5d71af4dc22e9d24faa21d2c014075e491f9b704
4
+ data.tar.gz: b74cab41e7cba25aea3ef6a1a04d2a42dd79d66e
5
5
  SHA512:
6
- metadata.gz: 31df5bf0235d6a9c58f69b29a79d2d0f37934a016c414932d622b4739405f5a468bed692912bed509b933b4a3edae1f40750f15be188c1b0a7506d76c29fcfaf
7
- data.tar.gz: ff35df37fc36b62c1f6aec9ccf1200d544d954f4a5450f567e1e31b75cd9d3448ff4e970840320890bbd8aa32ed5106fa24be5075680f6f22b890c7e9de2af30
6
+ metadata.gz: dc2b0a6c8f89dbb0a04d61da0f261e8d0e2b4745b127c6536e38b46ced6534edf5c0782c2933e7eb1a6f7191406b44b4382e1ac9ce91437936e01e87ad958a90
7
+ data.tar.gz: 5f423e6a51c53cf189550aeaa7918f68dfdddba4a172d3db201b4e84428c171099aec131f31782db84d76ed29ea0b16af512ec0517f4f87983768082c1226c61
@@ -9,7 +9,7 @@ module Rake
9
9
  class << self
10
10
  def autodetect!
11
11
  specs = Spec.scan Task.pwd.join '{*/*/,*/,}*.gemspec'
12
- specs.uniq! {|spec| spec.name }
12
+ specs.uniq!(&:name)
13
13
 
14
14
  if specs.size == 1
15
15
  Rake::Release::Task.new specs.first
@@ -16,7 +16,7 @@ module Rake
16
16
  attr_reader :gemspec_path
17
17
 
18
18
  attr_accessor :namespace
19
- attr_accessor :push_host
19
+ attr_accessor :version_tag
20
20
 
21
21
  def initialize(path, namespace: nil)
22
22
  path = Task.pwd.join(path.to_s).expand_path
@@ -26,9 +26,7 @@ module Rake
26
26
 
27
27
  gemspecs = Dir[@base.join('*.gemspec')]
28
28
 
29
- if gemspecs.size != 1
30
- raise 'Unable to determine gemspec file.'
31
- end
29
+ raise 'Unable to determine gemspec file.' if gemspecs.size != 1
32
30
 
33
31
  @gemspec_path = Pathname.new gemspecs.first
34
32
  else
@@ -40,10 +38,18 @@ module Rake
40
38
 
41
39
  raise RuntimeError.new 'Cannot load gemspec' unless @gemspec
42
40
 
43
- @push_host = URI 'https://rubygems.org'
41
+ if @gemspec.metadata.fetch('allowed_push_host', nil)
42
+ @allowed_push_host = URI @gemspec.metadata['allowed_push_host']
43
+ end
44
+
45
+ @version_tag = true
46
+ end
44
47
 
45
- unless @gemspec.metadata['allowed_push_host'].to_s.empty?
46
- @push_host = URI @gemspec.metadata['allowed_push_host']
48
+ def push_host
49
+ if @allowed_push_host
50
+ @allowed_push_host
51
+ else
52
+ @push_host ||= URI 'https://rubygems.org'
47
53
  end
48
54
  end
49
55
 
@@ -51,8 +57,8 @@ module Rake
51
57
  @push_host = URI value
52
58
  end
53
59
 
54
- alias_method :host, :push_host
55
- alias_method :host=, :push_host=
60
+ alias host push_host
61
+ alias host= push_host=
56
62
 
57
63
  def push_host_name
58
64
  push_host.host.to_s
@@ -70,8 +76,18 @@ module Rake
70
76
  @pkg_file_path ||= pkg_path.join pkg_file_name
71
77
  end
72
78
 
79
+ def version_tag?
80
+ @version_tag ? true : false
81
+ end
82
+
73
83
  def version_tag
74
- "v#{version}"
84
+ if @version_tag.respond_to? :call
85
+ @version_tag.call(self).to_s
86
+ elsif @version_tag.respond_to? :to_str
87
+ @version_tag.to_str
88
+ else
89
+ "v#{version}"
90
+ end
75
91
  end
76
92
 
77
93
  class << self
@@ -84,8 +100,8 @@ module Rake
84
100
  def scan(path = Task.pwd.join('*.gemspec'))
85
101
  Pathname
86
102
  .glob(path)
87
- .map {|path| Rake::Release::Spec.load path }
88
- .reject {|spec| spec.nil? }
103
+ .map { |path| Rake::Release::Spec.load path }
104
+ .reject(&:nil?)
89
105
  end
90
106
  end
91
107
  end
@@ -42,9 +42,15 @@ module Rake
42
42
  EOF
43
43
  task('install:local' => [:build]) { install local: true }
44
44
 
45
- desc <<-EOF.strip
46
- Create and push tag #{@spec.version_tag}, build gem and publish to #{@spec.push_host_name}.
47
- EOF
45
+ desc ''.tap { |str|
46
+ str << if @spec.version_tag?
47
+ "Create and push tag #{@spec.version_tag}, build"
48
+ else
49
+ 'Build'
50
+ end
51
+
52
+ str << "and publish to #{@spec.push_host_name}."
53
+ }
48
54
  task :release, [:remote] => %w(build release:push release:publish)
49
55
 
50
56
  task 'release:guard:clean' do
@@ -52,11 +58,13 @@ module Rake
52
58
  end
53
59
 
54
60
  task 'release:guard:tag' do
55
- guard_tag
61
+ guard_tag if @spec.version_tag?
56
62
  end
57
63
 
58
64
  task 'release:push', [:remote] => %w(release:guard:clean) do |_, args|
59
- tag_version { git_push(args[:remote]) } unless already_tagged?
65
+ if @spec.version_tag? && !already_tagged?
66
+ tag_version { git_push(args[:remote]) }
67
+ end
60
68
  end
61
69
 
62
70
  task 'release:publish' => %w(release:guard:tag) do
@@ -72,7 +80,7 @@ module Rake
72
80
  def guard_tag
73
81
  out, ret = sh! 'git', 'tag', '--points-at', 'HEAD'
74
82
 
75
- if not out.split("\n").include? @spec.version_tag
83
+ unless out.split("\n").include? @spec.version_tag
76
84
  raise "Tag #{@spec.version_tag} does not point to current HEAD. Cannot release wrong code."
77
85
  end
78
86
  end
@@ -109,7 +117,7 @@ module Rake
109
117
  end
110
118
 
111
119
  def git_clean
112
- clean? && committed? || raise("There are files that need to be committed first.")
120
+ clean? && committed? || raise('There are files that need to be committed first.')
113
121
  end
114
122
 
115
123
  def clean?
@@ -141,9 +149,7 @@ module Rake
141
149
  def already_tagged?
142
150
  out, ret = sh 'git', 'tag'
143
151
 
144
- unless out.split(/\n/).include? @spec.version_tag
145
- return false
146
- end
152
+ return false unless out.split(/\n/).include? @spec.version_tag
147
153
 
148
154
  Task.ui.confirm "Tag #{@spec.version_tag} has already been created."
149
155
 
@@ -153,9 +159,7 @@ module Rake
153
159
  def git_push(remote)
154
160
  cmd = %w(git push --quiet)
155
161
 
156
- if not remote.to_s.empty?
157
- cmd << remote
158
- end
162
+ cmd << remote unless remote.to_s.empty?
159
163
 
160
164
  sh! *cmd
161
165
  sh! *cmd, '--tags'
@@ -164,7 +168,7 @@ module Rake
164
168
  end
165
169
 
166
170
  def publish?
167
- ! %w(n no nil false off 0).include?(ENV["gem_push"].to_s.downcase)
171
+ ! %w(n no nil false off 0).include?(ENV['gem_push'].to_s.downcase)
168
172
  end
169
173
 
170
174
  def sh!(*cmd, **kwargs, &block)
@@ -182,7 +186,7 @@ module Rake
182
186
  [out, ret]
183
187
  end
184
188
 
185
- def sh(*cmd, chdir: @spec.base, raise_error: true, &block)
189
+ def sh(*cmd, chdir: @spec.base, raise_error: true)
186
190
  cmd = cmd.flatten.map(&:to_s)
187
191
 
188
192
  Task.ui.debug cmd
@@ -197,22 +201,17 @@ module Rake
197
201
  end
198
202
 
199
203
  class << self
200
- def load_all(dir = self.pwd)
204
+ def load_all(dir = pwd)
201
205
  specs = Spec.scan dir.join('**/*.gemspec')
202
206
 
203
- if specs.size > 1
204
- specs.each {|spec| spec.namespace = spec.name }
205
- end
206
-
207
- if block_given?
208
- specs.each(&Proc.new)
209
- end
207
+ specs.each { |spec| spec.namespace = spec.name } if specs.size > 1
208
+ specs.each(&Proc.new) if block_given?
210
209
 
211
- if specs.uniq {|s| s.namespace.to_s.strip }.size != specs.size
210
+ if specs.uniq { |s| s.namespace.to_s.strip }.size != specs.size
212
211
  raise RuntimeError.new 'Non distinct release task namespaces'
213
212
  end
214
213
 
215
- specs.each {|spec| Task.new spec }
214
+ specs.each { |spec| Task.new spec }
216
215
  end
217
216
 
218
217
  def pwd
@@ -2,13 +2,13 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'rake-release'
5
- spec.version = '0.4.0'
5
+ spec.version = '0.5.0'
6
6
  spec.authors = ['Jan Graichen']
7
7
  spec.email = ['jgraichen@altimos.de']
8
8
  spec.licenses = ['MIT']
9
9
 
10
- spec.summary = %q{Configurable fork of bundlers release tasks.}
11
- spec.description = %q{Configurable fork of bundlers release tasks.}
10
+ spec.summary = 'Configurable fork of bundlers release tasks.'
11
+ spec.description = 'Configurable fork of bundlers release tasks.'
12
12
  spec.homepage = 'https://github.com/jgraichen/rake-release'
13
13
 
14
14
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "rake/release"
3
+ require 'bundler/setup'
4
+ require 'rake/release'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +10,5 @@ require "rake/release"
10
10
  # require "pry"
11
11
  # Pry.start
12
12
 
13
- require "irb"
13
+ require 'irb'
14
14
  IRB.start
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake-release
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Graichen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-25 00:00:00.000000000 Z
11
+ date: 2016-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -90,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
90
  version: '0'
91
91
  requirements: []
92
92
  rubyforge_project:
93
- rubygems_version: 2.5.1
93
+ rubygems_version: 2.6.4
94
94
  signing_key:
95
95
  specification_version: 4
96
96
  summary: Configurable fork of bundlers release tasks.