burke 0.3.5 → 0.3.6
Sign up to get free protection for your applications and to get access to all the features.
- data/History.rdoc +12 -0
- data/Rakefile +2 -2
- data/VERSION +1 -1
- data/lib/burke.rb +5 -6
- data/lib/burke/holder.rb +2 -2
- data/lib/burke/tasks/docs.rb +5 -1
- data/lib/burke/tasks/release.rb +64 -10
- data/lib/burke/tasks/rspec.rb +12 -17
- data/lib/burke/tasks/yard.rb +2 -5
- data/spec/helpers/projects.rb +32 -0
- data/spec/{simple_project → helpers/projects/conventional}/COPYING +0 -0
- data/spec/{simple_project → helpers/projects/conventional}/README.md +0 -0
- data/spec/helpers/projects/conventional/Rakefile +8 -0
- data/spec/{simple_project → helpers/projects/conventional}/VERSION +0 -0
- data/spec/{simple_project → helpers/projects/conventional}/lib/main.rb +0 -0
- data/spec/helpers/projects/conventional/test/foo_test.rb +0 -0
- data/spec/holder_spec.rb +0 -1
- data/spec/projects/conventional_project_spec.rb +33 -0
- data/spec/spec_helper.rb +1 -21
- metadata +25 -15
- data/spec/burke_spec.rb +0 -39
- data/spec/simple_project/Rakefile +0 -8
data/History.rdoc
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
=== Version 0.3.6 / 2010-11-17
|
2
|
+
|
3
|
+
* Fixed Ruby 1.9 issues
|
4
|
+
* Stripped whitespace from burke:tasks disabled reasons
|
5
|
+
* Handled case where tag for previous version does not exist
|
6
|
+
* Fixed typo
|
7
|
+
* changed to 'gem' method for verifying task dependencies
|
8
|
+
* Made release task more informative
|
9
|
+
* Made the relationship between release task operations and questions more logical
|
10
|
+
* Added automatic history file building to release task
|
11
|
+
* restructured specs, fixed up rcov integration
|
12
|
+
|
data/Rakefile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
$:.unshift File.join(File.dirname(File.expand_path(__FILE__)), 'lib')
|
2
2
|
require 'burke'
|
3
3
|
|
4
4
|
Burke.setup do
|
@@ -11,6 +11,6 @@ Burke.setup do
|
|
11
11
|
clean %w[.yardoc]
|
12
12
|
clobber %w[pkg doc html coverage]
|
13
13
|
|
14
|
-
rspec.rcov.failure_threshold =
|
14
|
+
rspec.rcov.failure_threshold = 65
|
15
15
|
end
|
16
16
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.6
|
data/lib/burke.rb
CHANGED
@@ -113,12 +113,12 @@ module Burke
|
|
113
113
|
field(:rakefile_file) { find_file('rakefile').freeze }
|
114
114
|
field(:version_file) { find_file('version{.*,}').freeze }
|
115
115
|
|
116
|
-
field(:version) { File.read(version_file).strip
|
116
|
+
field(:version) { File.read(version_file).strip if version_file }
|
117
117
|
|
118
118
|
field :files do
|
119
|
-
fs = Dir['{lib,spec,bin}/**/*']
|
119
|
+
fs = Dir['{lib,spec,bin,test}/**/*']
|
120
120
|
fs << docs.readme_file
|
121
|
-
fs
|
121
|
+
fs.concat docs.extra_files
|
122
122
|
fs << version_file
|
123
123
|
fs << rakefile_file
|
124
124
|
fs.compact.freeze
|
@@ -176,7 +176,7 @@ module Burke
|
|
176
176
|
td.execute(settings)
|
177
177
|
enabled << [name, nil]
|
178
178
|
rescue Exception => ex
|
179
|
-
disabled << [name, ex.message]
|
179
|
+
disabled << [name, ex.message.strip]
|
180
180
|
end
|
181
181
|
else
|
182
182
|
disabled << [name, "disabled by project developer(s)"]
|
@@ -190,9 +190,8 @@ module Burke
|
|
190
190
|
puts ' Enabled '
|
191
191
|
puts ' ---------'
|
192
192
|
width = enabled.map {|a| a[0].length}.sort.last
|
193
|
-
enabled.sort_by {|a| a[0]}.each do |name,
|
193
|
+
enabled.sort_by {|a| a[0]}.each do |name, _|
|
194
194
|
line = "+ #{name.ljust(width)}"
|
195
|
-
line << " (#{reason})" if reason
|
196
195
|
puts line
|
197
196
|
end
|
198
197
|
puts
|
data/lib/burke/holder.rb
CHANGED
@@ -143,7 +143,7 @@ module Burke
|
|
143
143
|
end
|
144
144
|
when '='
|
145
145
|
if field_exists? key
|
146
|
-
self[key] =
|
146
|
+
self[key] = args[0]
|
147
147
|
else
|
148
148
|
super
|
149
149
|
end
|
@@ -160,7 +160,7 @@ module Burke
|
|
160
160
|
end
|
161
161
|
v
|
162
162
|
else
|
163
|
-
self[key] =
|
163
|
+
self[key] = args[0]
|
164
164
|
end
|
165
165
|
else
|
166
166
|
super
|
data/lib/burke/tasks/docs.rb
CHANGED
@@ -14,7 +14,7 @@ module Burke
|
|
14
14
|
end
|
15
15
|
|
16
16
|
field 'extra_files' do
|
17
|
-
[license_file].compact.freeze
|
17
|
+
[license_file, history_file].compact.freeze
|
18
18
|
end
|
19
19
|
|
20
20
|
field 'readme_file' do
|
@@ -25,6 +25,10 @@ module Burke
|
|
25
25
|
find_file('{licen{c,s}e,copying}{.*,}').freeze
|
26
26
|
end
|
27
27
|
|
28
|
+
field 'history_file' do
|
29
|
+
find_file('{history,changelog}{.*,}').freeze
|
30
|
+
end
|
31
|
+
|
28
32
|
field 'markup' do
|
29
33
|
case File.extname(readme_file).downcase
|
30
34
|
when '.rdoc'
|
data/lib/burke/tasks/release.rb
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
module Burke
|
2
2
|
define_task 'release' do |s|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
raise "'git' gem is not available"
|
7
|
-
end
|
3
|
+
gem 'git'
|
4
|
+
require 'git'
|
5
|
+
|
8
6
|
if s.key? 'version'
|
9
7
|
raise "version is managed in an unknown way"
|
10
8
|
end
|
9
|
+
|
11
10
|
desc 'Release a new version of this project'
|
12
11
|
task 'release' do |t|
|
13
12
|
g = Git.open '.'
|
@@ -49,20 +48,75 @@ module Burke
|
|
49
48
|
new_version = Gem::Version.new(segments.join('.'))
|
50
49
|
end
|
51
50
|
|
52
|
-
|
53
|
-
|
54
|
-
|
51
|
+
case settings.docs.markup
|
52
|
+
when 'rdoc'
|
53
|
+
settings.docs.history_file ||= "History.rdoc"
|
54
|
+
when 'markdown'
|
55
|
+
settings.docs.history_file ||= "History.md"
|
56
|
+
when 'textile'
|
57
|
+
settings.docs.history_file ||= "History.textile"
|
58
|
+
else
|
59
|
+
settings.docs.history_file ||= "History.txt"
|
60
|
+
end
|
61
|
+
|
62
|
+
puts "Would you like the history file '#{settings.docs.history_file}' to be updated? [Y]es, [N]o"
|
63
|
+
update_changelog = nil
|
64
|
+
until %w[y n yes no].include? update_changelog
|
65
|
+
print "> "
|
66
|
+
update_changelog = $stdin.gets.strip.downcase
|
67
|
+
puts
|
68
|
+
end
|
69
|
+
update_changelog = %w[yes y].include? update_changelog
|
70
|
+
|
71
|
+
puts "The VERSION file will be changed from containing '#{old_version}' "
|
72
|
+
puts "to '#{new_version}'. The changes will be commited to the Git "
|
73
|
+
puts "repository and tagged with 'v#{new_version}'."
|
74
|
+
if update_changelog
|
75
|
+
puts "A new entry will be made in the history file '#{settings.docs.history_file}'."
|
76
|
+
end
|
55
77
|
puts
|
56
78
|
|
57
79
|
continue = nil
|
58
|
-
until [
|
80
|
+
until %w[y n yes no].include? continue
|
59
81
|
puts "Continue? [Y]es, [N]o"
|
60
82
|
print "> "
|
61
83
|
continue = $stdin.gets.strip.downcase
|
62
84
|
puts
|
63
85
|
end
|
86
|
+
continue = %w[yes y].include? continue
|
64
87
|
|
65
|
-
if
|
88
|
+
if continue
|
89
|
+
if update_changelog
|
90
|
+
log_entries = nil
|
91
|
+
begin
|
92
|
+
log_entries = g.log.between("v#{old_version}", '.').to_a
|
93
|
+
rescue
|
94
|
+
log_entries = g.log.to_a
|
95
|
+
end
|
96
|
+
messages = log_entries.map {|c| c.message}.uniq
|
97
|
+
str = ""
|
98
|
+
time = Time.now
|
99
|
+
date_str = "%.4d-%.2d-%.2d" % [time.year, time.month, time.day]
|
100
|
+
heading = "Version #{new_version} / #{date_str}"
|
101
|
+
case settings.docs.markup
|
102
|
+
when 'rdoc'
|
103
|
+
str << "=== #{heading}\n\n"
|
104
|
+
when 'markdown'
|
105
|
+
str << "### #{heading}\n\n"
|
106
|
+
when 'textile'
|
107
|
+
str << "h3. #{heading}\n\n"
|
108
|
+
else
|
109
|
+
str << "#{heading}\n\n"
|
110
|
+
end
|
111
|
+
str << messages.map {|m| "* " + m}.join("\n")
|
112
|
+
|
113
|
+
old_log = File.read(settings.docs.history_file) rescue ""
|
114
|
+
new_log = [str, old_log].join("\n\n")
|
115
|
+
open(settings.docs.history_file, 'w') do |f|
|
116
|
+
f.write new_log
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
66
120
|
open 'VERSION', 'w' do |f|
|
67
121
|
f.puts new_version.to_s
|
68
122
|
end
|
data/lib/burke/tasks/rspec.rb
CHANGED
@@ -2,11 +2,8 @@ module Burke
|
|
2
2
|
Settings.field(:rspec) { self.rspec = RSpecSettings.new }
|
3
3
|
|
4
4
|
define_task 'spec' do |s|
|
5
|
-
|
6
|
-
|
7
|
-
rescue LoadError
|
8
|
-
raise "'rspec' gem is not available"
|
9
|
-
end
|
5
|
+
gem 'rspec-core', '~> 2'
|
6
|
+
require 'rspec/core/rake_task'
|
10
7
|
|
11
8
|
RSpec::Core::RakeTask.new 'spec' do |t|
|
12
9
|
build_spec_task t, s.rspec
|
@@ -14,35 +11,33 @@ module Burke
|
|
14
11
|
end
|
15
12
|
|
16
13
|
define_task 'spec:rcov' do |s|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
raise "'rspec' gem is not available"
|
21
|
-
end
|
14
|
+
gem 'rcov'
|
15
|
+
gem 'rspec-core', '~> 2'
|
16
|
+
require 'rspec/core/rake_task'
|
22
17
|
|
23
18
|
desc "Run RSpec code examples and generate full RCov report"
|
24
19
|
RSpec::Core::RakeTask.new('spec:rcov') do |t|
|
20
|
+
require 'shellwords'
|
25
21
|
t.rcov = true
|
26
22
|
t.rcov_opts = [
|
27
|
-
|
23
|
+
"-I#{%w[lib spec].map {|e| File.expand_path(e).shellescape }.join ':'}",
|
28
24
|
'--exclude', "'spec/,#{s.rakefile_file}'",
|
29
25
|
]
|
30
26
|
end
|
31
27
|
end
|
32
28
|
|
33
29
|
define_task 'spec:rcov:verify' do |s|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
raise "'rspec' gem is not available"
|
38
|
-
end
|
30
|
+
gem 'rcov'
|
31
|
+
gem 'rspec-core', '~> 2'
|
32
|
+
require 'rspec/core/rake_task'
|
39
33
|
|
40
34
|
desc "Run RSpec code examples and verify RCov percentage"
|
41
35
|
RSpec::Core::RakeTask.new('spec:rcov:verify') do |t|
|
36
|
+
require 'shellwords'
|
42
37
|
t.rcov = true
|
43
38
|
t.rcov_opts = [
|
44
39
|
'--failure-threshold', s.rspec.rcov.failure_threshold,
|
45
|
-
|
40
|
+
"-I#{%w[lib spec].map {|e| File.expand_path(e).shellescape }.join ':'}",
|
46
41
|
'--exclude', "'spec/,#{s.rakefile_file}'",
|
47
42
|
'--no-html'
|
48
43
|
]
|
data/lib/burke/tasks/yard.rb
CHANGED
@@ -0,0 +1,32 @@
|
|
1
|
+
module Helpers
|
2
|
+
module Projects
|
3
|
+
def project_dir(name)
|
4
|
+
File.join(File.dirname(__FILE__), 'projects', name)
|
5
|
+
end
|
6
|
+
|
7
|
+
def mock_burke_project(name, &block)
|
8
|
+
Dir.chdir project_dir(name) do
|
9
|
+
# Stow away current Burke settings and mock out the `settings` method
|
10
|
+
Burke.module_eval do
|
11
|
+
class << self
|
12
|
+
alias :old_settings :settings
|
13
|
+
def settings
|
14
|
+
@_settings ||= Burke::Settings.new
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
load 'Rakefile'
|
20
|
+
block.call
|
21
|
+
|
22
|
+
# Restore Burke to how it was
|
23
|
+
Burke.module_eval do
|
24
|
+
class << self
|
25
|
+
alias :settings :old_settings
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/spec/holder_spec.rb
CHANGED
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'helpers/projects'
|
3
|
+
|
4
|
+
describe "conventional project" do
|
5
|
+
include Helpers::Projects
|
6
|
+
|
7
|
+
around do |example|
|
8
|
+
mock_burke_project('conventional', &example)
|
9
|
+
end
|
10
|
+
|
11
|
+
let(:settings) { Burke.settings }
|
12
|
+
subject { settings }
|
13
|
+
|
14
|
+
its(:name) { should eql 'conventional' }
|
15
|
+
|
16
|
+
its(:version_file) { should eql 'VERSION' }
|
17
|
+
its(:rakefile_file) { should eql 'Rakefile' }
|
18
|
+
its(:version) { should eql '1.2.3' }
|
19
|
+
|
20
|
+
describe 'docs' do
|
21
|
+
subject { settings.docs }
|
22
|
+
its(:readme_file) { should eql 'README.md' }
|
23
|
+
its(:license_file) { should eql 'COPYING' }
|
24
|
+
its(:markup) { should eql 'markdown' }
|
25
|
+
end
|
26
|
+
|
27
|
+
describe 'test' do
|
28
|
+
subject { settings.test }
|
29
|
+
its(:files) { should eql ['test/foo_test.rb'] }
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
|
data/spec/spec_helper.rb
CHANGED
@@ -1,24 +1,4 @@
|
|
1
|
-
|
1
|
+
$:.unshift File.join(File.dirname(File.expand_path(__FILE__)), 'lib')
|
2
2
|
require 'burke'
|
3
3
|
require 'rspec/core'
|
4
4
|
|
5
|
-
def mock_burke_setup
|
6
|
-
Burke.module_eval do
|
7
|
-
class << self
|
8
|
-
alias :old_settings :settings
|
9
|
-
|
10
|
-
def settings
|
11
|
-
@settings ||= Burke::Settings.new
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def unmock_burke_setup
|
18
|
-
Burke.module_eval do
|
19
|
-
class << self
|
20
|
-
alias :settings :old_settings
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: burke
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 31
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 3
|
8
|
-
-
|
9
|
-
version: 0.3.
|
9
|
+
- 6
|
10
|
+
version: 0.3.6
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Aiden Nibali
|
@@ -14,31 +15,33 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2010-
|
18
|
+
date: 2010-11-17 00:00:00 +11:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
22
|
+
name: rake
|
21
23
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
22
25
|
requirements:
|
23
26
|
- - "="
|
24
27
|
- !ruby/object:Gem::Version
|
28
|
+
hash: 49
|
25
29
|
segments:
|
26
30
|
- 0
|
27
31
|
- 8
|
28
32
|
- 7
|
29
33
|
version: 0.8.7
|
30
|
-
requirement: *id001
|
31
34
|
prerelease: false
|
35
|
+
requirement: *id001
|
32
36
|
type: :development
|
33
|
-
name: rake
|
34
37
|
description:
|
35
38
|
email: dismal.denizen@gmail.com
|
36
39
|
executables: []
|
37
40
|
|
38
41
|
extensions: []
|
39
42
|
|
40
|
-
extra_rdoc_files:
|
41
|
-
|
43
|
+
extra_rdoc_files:
|
44
|
+
- History.rdoc
|
42
45
|
files:
|
43
46
|
- lib/burke/tasks/rdoc.rb
|
44
47
|
- lib/burke/tasks/yard.rb
|
@@ -51,14 +54,17 @@ files:
|
|
51
54
|
- lib/burke/holder.rb
|
52
55
|
- lib/burke.rb
|
53
56
|
- spec/holder_spec.rb
|
57
|
+
- spec/projects/conventional_project_spec.rb
|
58
|
+
- spec/helpers/projects.rb
|
59
|
+
- spec/helpers/projects/conventional/lib/main.rb
|
60
|
+
- spec/helpers/projects/conventional/test/foo_test.rb
|
61
|
+
- spec/helpers/projects/conventional/Rakefile
|
62
|
+
- spec/helpers/projects/conventional/README.md
|
63
|
+
- spec/helpers/projects/conventional/COPYING
|
64
|
+
- spec/helpers/projects/conventional/VERSION
|
54
65
|
- spec/spec_helper.rb
|
55
|
-
- spec/simple_project/lib/main.rb
|
56
|
-
- spec/simple_project/Rakefile
|
57
|
-
- spec/simple_project/README.md
|
58
|
-
- spec/simple_project/COPYING
|
59
|
-
- spec/simple_project/VERSION
|
60
|
-
- spec/burke_spec.rb
|
61
66
|
- README.rdoc
|
67
|
+
- History.rdoc
|
62
68
|
- VERSION
|
63
69
|
- Rakefile
|
64
70
|
has_rdoc: true
|
@@ -68,29 +74,33 @@ licenses: []
|
|
68
74
|
post_install_message:
|
69
75
|
rdoc_options:
|
70
76
|
- --title
|
71
|
-
- burke 0.3.
|
77
|
+
- burke 0.3.6
|
72
78
|
- --main
|
73
79
|
- README.rdoc
|
74
80
|
require_paths:
|
75
81
|
- lib
|
76
82
|
required_ruby_version: !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
77
84
|
requirements:
|
78
85
|
- - ">="
|
79
86
|
- !ruby/object:Gem::Version
|
87
|
+
hash: 3
|
80
88
|
segments:
|
81
89
|
- 0
|
82
90
|
version: "0"
|
83
91
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
|
+
none: false
|
84
93
|
requirements:
|
85
94
|
- - ">="
|
86
95
|
- !ruby/object:Gem::Version
|
96
|
+
hash: 3
|
87
97
|
segments:
|
88
98
|
- 0
|
89
99
|
version: "0"
|
90
100
|
requirements: []
|
91
101
|
|
92
102
|
rubyforge_project:
|
93
|
-
rubygems_version: 1.3.
|
103
|
+
rubygems_version: 1.3.7
|
94
104
|
signing_key:
|
95
105
|
specification_version: 3
|
96
106
|
summary: Helper for creating nice, clean Rake files
|
data/spec/burke_spec.rb
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
($LOAD_PATH << File.dirname(File.expand_path(__FILE__))).uniq!
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
DIR = File.dirname(File.expand_path(__FILE__))
|
5
|
-
|
6
|
-
describe Burke do
|
7
|
-
describe 'settings' do
|
8
|
-
context 'for example of a simple project' do
|
9
|
-
before do
|
10
|
-
@old_pwd = Dir.pwd
|
11
|
-
Dir.chdir File.join(DIR, 'simple_project')
|
12
|
-
mock_burke_setup
|
13
|
-
load 'Rakefile'
|
14
|
-
@settings = Burke.settings
|
15
|
-
end
|
16
|
-
|
17
|
-
subject { @settings }
|
18
|
-
|
19
|
-
its(:name) { should eql 'simple_project' }
|
20
|
-
|
21
|
-
its(:version_file) { should eql 'VERSION' }
|
22
|
-
its(:rakefile_file) { should eql 'Rakefile' }
|
23
|
-
its(:version) { should eql '1.2.3' }
|
24
|
-
|
25
|
-
describe 'docs' do
|
26
|
-
subject { @settings.docs }
|
27
|
-
its(:readme_file) { should eql 'README.md' }
|
28
|
-
its(:license_file) { should eql 'COPYING' }
|
29
|
-
its(:markup) { should eql 'markdown' }
|
30
|
-
end
|
31
|
-
|
32
|
-
after do
|
33
|
-
unmock_burke_setup
|
34
|
-
Dir.chdir @old_pwd
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|