woof_util 0.0.9 → 0.0.12
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.
- data/lib/woof_util/gem_rake_tasks.rb +104 -0
- metadata +5 -1
@@ -0,0 +1,104 @@
|
|
1
|
+
module WoofUtil
|
2
|
+
module GemRakeTasks
|
3
|
+
require "excon"
|
4
|
+
require "highline/import"
|
5
|
+
|
6
|
+
include Rake::DSL
|
7
|
+
|
8
|
+
extend self
|
9
|
+
|
10
|
+
def version
|
11
|
+
begin
|
12
|
+
File.read("VERSION").chomp
|
13
|
+
rescue Errno::ENOENT
|
14
|
+
"0.0.0"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def bump_version vtype=((ENV["bump_type"] || :patch).to_sym)
|
19
|
+
v = {}
|
20
|
+
vstring = version
|
21
|
+
puts "old: #{vstring}"
|
22
|
+
v[:major], v[:minor], v[:patch] = vstring.split "."
|
23
|
+
v[vtype] = (v[vtype].to_i + 1).to_s
|
24
|
+
vstring = [v[:major], v[:minor], v[:patch]].join "."
|
25
|
+
|
26
|
+
stashdata = `git stash save versionbump_#{vstring}`
|
27
|
+
$stdout.write stashdata
|
28
|
+
|
29
|
+
File.write "VERSION", "#{vstring}\n"
|
30
|
+
system "git add VERSION"
|
31
|
+
system "git commit -m versionbump_to_#{vstring}"
|
32
|
+
system "git stash pop" unless stashdata =~ /No local changes to save/
|
33
|
+
puts "new: #{vstring}"
|
34
|
+
vstring
|
35
|
+
end
|
36
|
+
|
37
|
+
def rubygems_logout
|
38
|
+
begin
|
39
|
+
File.unlink "#{ENV["HOME"]}/.gem/credentials"
|
40
|
+
rescue Errno::ENOENT
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def rubygems_login
|
45
|
+
rubygems_logout
|
46
|
+
|
47
|
+
user = ask("Rubygems username: ")
|
48
|
+
pw = ask("Password: ") { |q| q.echo = false }
|
49
|
+
|
50
|
+
resp = Excon.get "https://#{user}:#{pw}@rubygems.org/api/v1/api_key.yaml"
|
51
|
+
raise "login fail #{resp.status}" unless resp.status == 200
|
52
|
+
File.umask(0077)
|
53
|
+
File.write "#{ENV["HOME"]}/.gem/credentials", resp.body
|
54
|
+
end
|
55
|
+
|
56
|
+
def push_to_github
|
57
|
+
system "git push github master"
|
58
|
+
end
|
59
|
+
|
60
|
+
def hello
|
61
|
+
puts "hello world"
|
62
|
+
end
|
63
|
+
|
64
|
+
def gemspec_file_name
|
65
|
+
raise "cwd needs exactly 1 gemspec" if Dir.glob("*.gemspec").length != 1
|
66
|
+
Dir.glob("*.gemspec")[0]
|
67
|
+
end
|
68
|
+
|
69
|
+
def gemname
|
70
|
+
eval(File.read gemspec_file_name).name
|
71
|
+
end
|
72
|
+
|
73
|
+
def build_the_gem
|
74
|
+
begin ; File.unlink gem_file_name
|
75
|
+
rescue Errno::ENOENT ; end
|
76
|
+
system "gem build #{gemspec_file_name}"
|
77
|
+
raise "can't build gem" unless File.exists? gem_file_name
|
78
|
+
end
|
79
|
+
|
80
|
+
def gem_file_name
|
81
|
+
"#{gemname}-#{version}.gem"
|
82
|
+
end
|
83
|
+
|
84
|
+
def push_to_rubygems
|
85
|
+
system "gem push #{gem_file_name}"
|
86
|
+
end
|
87
|
+
|
88
|
+
def create_tasks
|
89
|
+
namespace :gem do
|
90
|
+
[:rubygems_login, :rubygems_logout,
|
91
|
+
:bump_version, :push_to_github,
|
92
|
+
:build_the_gem, :push_to_rubygems, :hello].each do |tname|
|
93
|
+
Rake::Task.define_task tname do
|
94
|
+
send tname
|
95
|
+
end
|
96
|
+
end
|
97
|
+
task :pushify => [:bump_version, :push_to_github,
|
98
|
+
:build_the_gem, :push_to_rubygems] do
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
104
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: woof_util
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.12
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -17,6 +17,7 @@ executables: []
|
|
17
17
|
extensions: []
|
18
18
|
extra_rdoc_files: []
|
19
19
|
files:
|
20
|
+
- lib/woof_util/gem_rake_tasks.rb
|
20
21
|
- lib/woof_util.rb
|
21
22
|
homepage: https://github.com/tmaher/woofutil
|
22
23
|
licenses: []
|
@@ -30,6 +31,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
30
31
|
- - ! '>='
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '0'
|
34
|
+
segments:
|
35
|
+
- 0
|
36
|
+
hash: -1987400709276425442
|
33
37
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
34
38
|
none: false
|
35
39
|
requirements:
|