woof_util 0.0.9 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/woof_util/gem_rake_tasks.rb +104 -0
  2. 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.9
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: