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.
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: