rake_rack 0.0.5 → 0.0.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ff8047370f891de9c32be54447543424552d5786
4
- data.tar.gz: fdeb3e724a981c0d8662530099ac95d81988624c
3
+ metadata.gz: 9f3ce1fb58a6142ef4ee8b5dbb63b56ecca4651e
4
+ data.tar.gz: 2d02f6292f670be585aa6c28c57a27fef7e79b4a
5
5
  SHA512:
6
- metadata.gz: 6ceebe5d1beffc811f501718a86abee90225dab5ac1ebe699129ba81d8efbcf317b4b2d66d83fa7efb6327783e8c833cb061827a32957e15415e530c4ffb1bb5
7
- data.tar.gz: c5d875c4cfa941796dfce5aef8d3104bb9c4ee4c0e0ccd085058e33924cb5fb17c47a596be0385525b8ab2233b4d046b1cad7fcf81ee1707b4c1221cf686eaff
6
+ metadata.gz: 3457e22c01719b5616fa2f36211d80bc09194bb5ad94e0405d08665afd48ef2b365edb734ffaaedf65543bc095a39eb48a66e489ac54670e7bf465daba81c28e
7
+ data.tar.gz: 5cc284136eed4066da4c2f1cc9be874c24719fd397d8c04c7a1a2e323b0d2cdcb2785be7940aed30859c242da0ae2e5a6b062f5be915c844c488100a714b72c7
data/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
+ /log/*
1
2
  *.gem
2
3
  *.sw?
data/.travis.yml CHANGED
@@ -13,3 +13,4 @@ deploy:
13
13
  gem: rake_rack
14
14
  on:
15
15
  tags: true
16
+ all_branches: true
data/Gemfile CHANGED
@@ -2,3 +2,6 @@ source 'https://rubygems.org'
2
2
 
3
3
  gem 'rspec'
4
4
  gem 'rake'
5
+ gem 'pry-byebug'
6
+ gem 'simplecov'
7
+ gem 'timecop'
data/Gemfile.lock CHANGED
@@ -1,7 +1,23 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
+ byebug (2.7.0)
5
+ columnize (~> 0.3)
6
+ debugger-linecache (~> 1.2)
7
+ coderay (1.1.0)
8
+ columnize (0.8.9)
9
+ debugger-linecache (1.2.0)
4
10
  diff-lcs (1.2.5)
11
+ docile (1.1.5)
12
+ method_source (0.8.2)
13
+ multi_json (1.10.1)
14
+ pry (0.10.0)
15
+ coderay (~> 1.1.0)
16
+ method_source (~> 0.8.1)
17
+ slop (~> 3.4)
18
+ pry-byebug (1.3.3)
19
+ byebug (~> 2.7)
20
+ pry (~> 0.10)
5
21
  rake (10.1.0)
6
22
  rspec (3.0.0)
7
23
  rspec-core (~> 3.0.0)
@@ -15,10 +31,20 @@ GEM
15
31
  rspec-mocks (3.0.2)
16
32
  rspec-support (~> 3.0.0)
17
33
  rspec-support (3.0.2)
34
+ simplecov (0.8.2)
35
+ docile (~> 1.1.0)
36
+ multi_json
37
+ simplecov-html (~> 0.8.0)
38
+ simplecov-html (0.8.0)
39
+ slop (3.5.0)
40
+ timecop (0.7.1)
18
41
 
19
42
  PLATFORMS
20
43
  ruby
21
44
 
22
45
  DEPENDENCIES
46
+ pry-byebug
23
47
  rake
24
48
  rspec
49
+ simplecov
50
+ timecop
data/Rakefile CHANGED
@@ -2,6 +2,7 @@ require './lib/rake_rack'
2
2
 
3
3
  task :default => [
4
4
  :"rake_rack:rspec",
5
+ :"rake_rack:coverage:check_specs",
5
6
  :"rake_rack:ok",
6
7
  ]
7
8
 
data/history.rdoc CHANGED
@@ -1,3 +1,8 @@
1
+ == 0.0.6 (17 July 2014)
2
+
3
+ * Extract version logic into a class
4
+ * Allow all tags to push to RubyGems
5
+
1
6
  == 0.0.5 (16 July 2014)
2
7
 
3
8
  * Change version tack so it can update gem version
data/lib/rake_rack.rb CHANGED
@@ -1,4 +1,7 @@
1
+ $:.unshift File.dirname(__FILE__)
2
+
1
3
  require 'rake'
4
+ require 'version'
2
5
 
3
6
  dir = File.expand_path("../tasks", File.dirname(__FILE__))
4
7
  Dir.glob("#{dir}/*.rake").each { |r| import r}
data/lib/version.rb ADDED
@@ -0,0 +1,59 @@
1
+ class RakeRack
2
+ class Version
3
+ HISTORY_FILE = "history.rdoc"
4
+ def self.current_history history_file
5
+ File.read history_file
6
+ end
7
+
8
+ def self.latest_version
9
+ latest_version_string = current_history(HISTORY_FILE)[/== ([\d\.]*)/, 1] || "0.0.0"
10
+ @latest_version ||= latest_version_string.split(".").map(&:to_i)
11
+ def @latest_version.to_s
12
+ join "."
13
+ end
14
+ @latest_version
15
+ end
16
+
17
+ def self.update_to version
18
+ add_history_header version
19
+ update_gem version if gem?
20
+ commit version
21
+ tag version
22
+ branch = `git symbolic-ref HEAD`[%r{.*/(.*)}, 1]
23
+ puts "To push the new tag, use 'git push origin #{branch} --tags'"
24
+ end
25
+
26
+ def self.add_history_header(version, history_file = HISTORY_FILE)
27
+ history = current_history history_file
28
+ File.open history_file, "w" do |f|
29
+ f.puts "== #{version} (#{Time.now.strftime "%d %B %Y"})"
30
+ f.puts
31
+ f.print history
32
+ end
33
+ puts "Added version to history.rdoc"
34
+ end
35
+
36
+ def self.update_gem version
37
+ path = Dir.glob('*.gemspec').first
38
+ text = File.read path
39
+ File.open(path, "w") do |file|
40
+ file.puts text.sub(/(.*version\s*=\s*)(['|"].*['|"])/, "\\1'#{version}'")
41
+ end
42
+ puts "Added version to .gemfile"
43
+ end
44
+
45
+ def self.commit version
46
+ `git add . && git commit -m 'increment version to #{version}'`
47
+ puts "Committed change"
48
+ end
49
+
50
+ def self.tag version
51
+ `git tag #{version}`
52
+ puts "Tagged with #{version}"
53
+ end
54
+
55
+ def self.gem?
56
+ !Dir.glob('*.gemspec').empty?
57
+ end
58
+ end
59
+ end
data/rake_rack.gemspec CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "rake_rack"
7
- spec.version = '0.0.5'
7
+ spec.version = '0.0.6'
8
8
  spec.authors = ["Richard Vickerstaff"]
9
9
  spec.email = ["m3akq@btinternet.com"]
10
10
  spec.description = "A set of rake tasks I commonly use - Formerly known as pool_net"
@@ -0,0 +1,10 @@
1
+ require 'simplecov'
2
+ require 'pry-byebug'
3
+ require 'timecop'
4
+
5
+
6
+ SimpleCov.start do
7
+ coverage_dir 'log/coverage/spec'
8
+ end
9
+
10
+ require_relative '../lib/rake_rack'
@@ -0,0 +1,150 @@
1
+ require 'spec_helper'
2
+
3
+ describe RakeRack::Version do
4
+ before do
5
+ allow(described_class).to receive(:`)
6
+ allow(described_class).to receive(:puts)
7
+ end
8
+
9
+ describe '.current_history' do
10
+ before do
11
+ allow(File).to receive(:read).and_return 'history'
12
+ end
13
+
14
+ it 'returns the current history file' do
15
+ expect(described_class.current_history('./path')).to eq 'history'
16
+ end
17
+ end
18
+
19
+ describe '.latest_version' do
20
+ before do
21
+ allow(File).to receive(:read).and_return "== 1.2.3 (16 July 2014)\n * Change version tack so it can update gem version"
22
+ end
23
+
24
+ context 'there is no version'do
25
+ it 'returns a version of [0,0,0]' do
26
+ allow(File).to receive(:read).and_return ""
27
+ expect(described_class.latest_version).to eq [1,2,3]
28
+ end
29
+ end
30
+
31
+ context 'there is a version' do
32
+ it 'returns the latest version' do
33
+ expect(described_class.latest_version).to eq [1,2,3]
34
+ end
35
+ end
36
+
37
+ it 'defines the .to_s of the latest version'do
38
+ expect(described_class.latest_version.to_s).to eq "1.2.3"
39
+ end
40
+ end
41
+
42
+ describe '.gem?' do
43
+ context 'the project is a gem' do
44
+ before do
45
+ allow(Dir).to receive(:glob).and_return ['a gem spec']
46
+ end
47
+
48
+ it 'returns true' do
49
+ expect(described_class.gem?).to eq true
50
+ end
51
+ end
52
+
53
+ context 'the project is not a gem' do
54
+ before do
55
+ allow(Dir).to receive(:glob).and_return []
56
+ end
57
+
58
+ it 'returns false' do
59
+ expect(described_class.gem?).to eq false
60
+ end
61
+ end
62
+ end
63
+
64
+ describe '.update_gem' do
65
+ let(:tmp_file) { Tempfile.new(['rake_rack','.gemspec']) }
66
+
67
+ before do
68
+ gemspec = <<-GEM
69
+ Gem::Specification.new do |spec|
70
+ spec.name = "rake_rack"
71
+ spec.version = '0.0.5'
72
+ spec.authors = ["Richard Vickerstaff"]
73
+ end
74
+ GEM
75
+ tmp_file.write gemspec
76
+ tmp_file.rewind
77
+ allow(Dir).to receive(:glob).and_return [tmp_file.path]
78
+ end
79
+
80
+ it 'updates the gem version' do
81
+ t = Time.local(2014, 7, 16)
82
+ Timecop.travel(t) do
83
+ described_class.update_gem 'foo'
84
+ expect(File.read(tmp_file)).to match(/.*version\s*= 'foo'/)
85
+ end
86
+ end
87
+
88
+ it 'outputs a message to the user' do
89
+ expect(described_class).to receive(:puts).with 'Added version to .gemfile'
90
+ described_class.update_gem 'foo'
91
+ end
92
+ end
93
+
94
+ describe '.update_to' do
95
+ before do
96
+ allow(described_class).to receive(:`).and_return "refs/heads/master"
97
+ end
98
+
99
+ it 'updates the version' do
100
+ expect(described_class).to receive(:add_history_header).with 'foo'
101
+ expect(described_class).to receive(:update_gem).with 'foo'
102
+ expect(described_class).to receive(:commit).with 'foo'
103
+ expect(described_class).to receive(:tag).with 'foo'
104
+ expect(described_class).to receive(:`).with 'git symbolic-ref HEAD'
105
+ expect(described_class).to receive(:puts).with "To push the new tag, use 'git push origin master --tags'"
106
+ described_class.update_to 'foo'
107
+ end
108
+ end
109
+
110
+ describe '.add_history_header' do
111
+ let(:tmp_file) { Tempfile.new('foo').path }
112
+
113
+ it 'adds the new headre to the history.rdoc' do
114
+ t = Time.local(2014, 7, 16)
115
+ Timecop.travel(t) do
116
+ described_class.add_history_header 'foo', tmp_file
117
+ expect(File.read tmp_file).to eq "== foo (16 July 2014)\n\n"
118
+ end
119
+ end
120
+
121
+ it 'outputs a message to the user' do
122
+ expect(described_class).to receive(:puts).with 'Added version to history.rdoc'
123
+ described_class.add_history_header 'foo', tmp_file
124
+ end
125
+ end
126
+
127
+ describe '.commit' do
128
+ it 'commits all changes' do
129
+ expect(described_class).to receive(:`).with "git add . && git commit -m 'increment version to foo'"
130
+ described_class.commit 'foo'
131
+ end
132
+
133
+ it 'outputs a message to the user' do
134
+ expect(described_class).to receive(:puts).with 'Committed change'
135
+ described_class.commit 'foo'
136
+ end
137
+ end
138
+
139
+ describe '.tag' do
140
+ it 'it tags the commit with the new version' do
141
+ expect(described_class).to receive(:`).with 'git tag foo'
142
+ described_class.tag 'foo'
143
+ end
144
+
145
+ it 'outputs a message to the user' do
146
+ expect(described_class).to receive(:puts).with 'Tagged with foo'
147
+ described_class.tag 'foo'
148
+ end
149
+ end
150
+ end
data/tasks/version.rake CHANGED
@@ -1,87 +1,31 @@
1
- module Rake::Version
2
- def self.current_history
3
- File.read "history.rdoc"
4
- end
5
-
6
- def self.latest_version
7
- latest_version_string = current_history[/== ([\d\.]*)/, 1] || "0.0.0"
8
- @latest_version ||= latest_version_string.split(".").map(&:to_i)
9
- def @latest_version.to_s
10
- join "."
11
- end
12
- @latest_version
13
- end
14
-
15
- def self.update_to version
16
- add_history_header version
17
- update_gem version if gem?
18
- commit version
19
- tag version
20
- branch = `git symbolic-ref HEAD`[%r{.*/(.*)}, 1]
21
- puts "To push the new tag, use 'git push origin #{branch} --tags'"
22
- end
23
-
24
- def self.add_history_header version
25
- history = current_history
26
- File.open "history.rdoc", "w" do |f|
27
- f.puts "== #{version} (#{Time.now.strftime "%d %B %Y"})"
28
- f.puts
29
- f.print history
30
- end
31
- puts "Added version to history.rdoc"
32
- end
33
-
34
- def self.update_gem version
35
- path = Dir.glob('*.gemspec').first
36
- text = File.read path
37
- File.open(path, "w") do |file|
38
- file.puts text.sub(/(.*version\s*=\s*)(['|"].*['|"])/, "\\1'#{version}'")
39
- end
40
- end
41
-
42
- def self.commit version
43
- `git add . && git commit -m 'increment version to #{version}'`
44
- puts "Committed change"
45
- end
46
-
47
- def self.tag version
48
- `git tag #{version}`
49
- puts "Tagged with #{version}"
50
- end
51
-
52
- def self.gem?
53
- !Dir.glob('*.gemspec').empty?
54
- end
55
- end
56
-
57
1
  desc "Display the latest version (from history.rdoc)"
58
2
  task :"rake_rack:version" do
59
- puts "Latest version is #{Rake::Version.latest_version}"
3
+ puts "Latest version is #{RakeRack::Version.latest_version}"
60
4
  end
61
5
 
62
6
  namespace :rake_rack do
63
7
  namespace :version do
64
8
  desc "Increment the major version in history.rdoc (eg 1.2.3 => 2.0.0)"
65
9
  task :major do
66
- new_version = Rake::Version.latest_version
10
+ new_version = RakeRack::Version.latest_version
67
11
  new_version[0] += 1
68
12
  new_version[1,2] = 0, 0
69
- Rake::Version.update_to new_version
13
+ RakeRack::Version.update_to new_version
70
14
  end
71
15
 
72
16
  desc "Increment the minor version in history.rdoc (eg 1.2.3 => 1.3.0)"
73
17
  task :minor do
74
- new_version = Rake::Version.latest_version
18
+ new_version = RakeRack::Version.latest_version
75
19
  new_version[1] += 1
76
20
  new_version[2] = 0
77
- Rake::Version.update_to new_version
21
+ RakeRack::Version.update_to new_version
78
22
  end
79
23
 
80
24
  desc "Increment the patch version in history.rdoc (eg 1.2.3 => 1.2.4)"
81
25
  task :patch do
82
- new_version = Rake::Version.latest_version
26
+ new_version = RakeRack::Version.latest_version
83
27
  new_version[2] += 1
84
- Rake::Version.update_to new_version
28
+ RakeRack::Version.update_to new_version
85
29
  end
86
30
  end
87
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake_rack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Vickerstaff
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-16 00:00:00.000000000 Z
11
+ date: 2014-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -54,8 +54,11 @@ files:
54
54
  - Rakefile
55
55
  - history.rdoc
56
56
  - lib/rake_rack.rb
57
+ - lib/version.rb
57
58
  - rake_rack.gemspec
58
59
  - spec/.keep
60
+ - spec/spec_helper.rb
61
+ - spec/version_spec.rb
59
62
  - tasks/code_quality.rake
60
63
  - tasks/coverage.rake
61
64
  - tasks/karma.rake