burke 0.2.0 → 0.2.1
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/README.rdoc +2 -15
- data/Rakefile +1 -7
- data/VERSION +1 -1
- data/lib/burke.rb +81 -37
- data/lib/mash.rb +24 -1
- metadata +5 -5
data/README.rdoc
CHANGED
@@ -20,7 +20,6 @@ Here is a sample Rakefile using Burke.
|
|
20
20
|
|
21
21
|
require 'rubygems'
|
22
22
|
require 'burke'
|
23
|
-
require 'fileutils'
|
24
23
|
|
25
24
|
# Enable all tasks possible
|
26
25
|
Burke.enable_all
|
@@ -30,10 +29,8 @@ Here is a sample Rakefile using Burke.
|
|
30
29
|
s.name = 'foo'
|
31
30
|
s.version = '1.2.3'
|
32
31
|
s.summary = 'an example Ruby library with extra foo'
|
33
|
-
s.files = FileList['lib/**/*.rb']
|
34
32
|
|
35
33
|
s.docs do |d|
|
36
|
-
d.readme = 'README'
|
37
34
|
d.markup = 'rdoc'
|
38
35
|
end
|
39
36
|
|
@@ -42,25 +39,15 @@ Here is a sample Rakefile using Burke.
|
|
42
39
|
|
43
40
|
g.platform 'x86-linux' do |p|
|
44
41
|
p.before do |s|
|
45
|
-
|
42
|
+
cp 'native/libfoo-x86-linux.so', 'lib/libfoo.so'
|
46
43
|
s.add_dependency 'ffi'
|
47
44
|
s.files += ['lib/libfoo.so']
|
48
45
|
end
|
49
46
|
|
50
47
|
p.after do
|
51
|
-
|
48
|
+
rm 'lib/libfoo.so'
|
52
49
|
end
|
53
50
|
end
|
54
51
|
end
|
55
52
|
end
|
56
53
|
|
57
|
-
== Default attributes
|
58
|
-
|
59
|
-
* +version+ inferred from contents of 'VERSION' file
|
60
|
-
* +files+ all files in 'lib' and 'spec' plus detected 'README', 'VERSION',
|
61
|
-
'LICENSE', 'COPYING' and/or 'Rakefile'
|
62
|
-
* +docs.readme+ inferred from files matching 'README[\..*]?', case ignored
|
63
|
-
* +docs.markup+ inferred from extension of detected README file
|
64
|
-
* +rspec.spec_files+ 'spec/**/*_spec.rb'
|
65
|
-
* +rspec.color+ true
|
66
|
-
|
data/Rakefile
CHANGED
@@ -10,17 +10,11 @@ Burke.setup do |s|
|
|
10
10
|
s.email = 'dismal.denizen@gmail.com'
|
11
11
|
s.homepage = "http://github.com/dismaldenizen/burke"
|
12
12
|
|
13
|
-
s.dependencies
|
14
|
-
d.rake '~> 0.8.7'
|
15
|
-
end
|
13
|
+
s.dependencies.rake '~> 0.8.7'
|
16
14
|
|
17
15
|
s.has_rdoc = true
|
18
16
|
|
19
17
|
s.clean = %w[.yardoc]
|
20
18
|
s.clobber = %w[pkg doc html]
|
21
|
-
|
22
|
-
s.gems do |g|
|
23
|
-
g.platform 'ruby'
|
24
|
-
end
|
25
19
|
end
|
26
20
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.1
|
data/lib/burke.rb
CHANGED
@@ -6,11 +6,12 @@ require 'mash'
|
|
6
6
|
|
7
7
|
module Burke
|
8
8
|
VERSION = File.read(File.join(File.dirname(File.dirname(__FILE__)), 'VERSION'))
|
9
|
+
ALL_TASKS = [:clean, :yard, :rdoc, :rspec, :rspec_rcov, :gems, :install, :test]
|
9
10
|
@tasks = []
|
10
11
|
|
11
12
|
class << self
|
12
13
|
def enable_all opts={}
|
13
|
-
@tasks =
|
14
|
+
@tasks = ALL_TASKS.dup
|
14
15
|
disable opts[:except] if opts[:except]
|
15
16
|
end
|
16
17
|
|
@@ -29,61 +30,89 @@ module Burke
|
|
29
30
|
:dependencies => Mash[],
|
30
31
|
:docs => Mash[],
|
31
32
|
:rspec => Mash[:rcov => Mash[]],
|
33
|
+
:test => Mash[],
|
32
34
|
:gems => GemSettings.new,
|
33
35
|
:clean => [],
|
34
36
|
:clobber => [],
|
35
37
|
]
|
36
38
|
|
37
|
-
@settings.files
|
38
|
-
|
39
|
-
|
39
|
+
@settings.getter_filter :files do |v|
|
40
|
+
if v.nil?
|
41
|
+
v = Dir.glob('{lib,spec,bin}/**/*')
|
42
|
+
v << @settings.docs.readme
|
43
|
+
v << @settings.docs.license
|
44
|
+
v << 'Rakefile' if readable_file? 'Rakefile'
|
45
|
+
v << 'VERSION' if readable_file? 'VERSION'
|
46
|
+
v.compact
|
47
|
+
else
|
48
|
+
v
|
49
|
+
end
|
40
50
|
end
|
41
51
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
52
|
+
@settings.getter_filter :version do |v|
|
53
|
+
if v.nil? and readable_file? 'VERSION'
|
54
|
+
File.read('VERSION').strip
|
55
|
+
else
|
56
|
+
v
|
57
|
+
end
|
48
58
|
end
|
49
59
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
60
|
+
@settings.docs.getter_filter :readme do |v|
|
61
|
+
if v.nil?
|
62
|
+
files = Dir.glob('{readme,readme.*}', File::FNM_CASEFOLD)
|
63
|
+
files.reject! { |f| !readable_file? f }
|
64
|
+
files.first
|
65
|
+
else
|
66
|
+
v
|
54
67
|
end
|
55
68
|
end
|
56
69
|
|
57
|
-
|
58
|
-
|
59
|
-
|
70
|
+
@settings.docs.getter_filter :license do |v|
|
71
|
+
if v.nil?
|
72
|
+
files = Dir.glob('{license,license.*,copying,copying.*,licence,licence.*}', File::FNM_CASEFOLD)
|
73
|
+
files.reject! { |f| !readable_file? f }
|
74
|
+
files.first
|
75
|
+
else
|
76
|
+
v
|
77
|
+
end
|
60
78
|
end
|
61
79
|
|
62
|
-
|
63
|
-
|
64
|
-
if
|
65
|
-
|
80
|
+
@settings.docs.getter_filter :markup do |v|
|
81
|
+
readme = @settings.docs.readme
|
82
|
+
if v.nil? and readme
|
83
|
+
case File.extname(readme).downcase
|
84
|
+
when '.rdoc'
|
85
|
+
'rdoc'
|
86
|
+
when '.md', '.markdown'
|
87
|
+
'markdown'
|
88
|
+
when '.textile'
|
89
|
+
'textile'
|
90
|
+
end
|
91
|
+
else
|
92
|
+
v
|
66
93
|
end
|
67
94
|
end
|
68
95
|
|
69
|
-
|
70
|
-
|
71
|
-
@settings.files << readme_file
|
72
|
-
@settings.docs.markup = case File.extname(readme_file).downcase
|
73
|
-
when '.rdoc'
|
74
|
-
'rdoc'
|
75
|
-
when '.md'
|
76
|
-
'markdown'
|
77
|
-
when '.textile'
|
78
|
-
'textile'
|
79
|
-
end
|
96
|
+
@settings.test.getter_filter :test_files do |v|
|
97
|
+
v or Dir['test/**/{*_{test,tc},{test,tc}_*}.rb']
|
80
98
|
end
|
81
99
|
|
82
|
-
@settings.rspec.
|
83
|
-
|
100
|
+
@settings.rspec.getter_filter :color do |v|
|
101
|
+
v.nil? ? true : v
|
102
|
+
end
|
103
|
+
|
104
|
+
@settings.rspec.getter_filter :spec_files do |v|
|
105
|
+
v or Dir['spec/**/*_spec.rb']
|
106
|
+
end
|
107
|
+
|
108
|
+
@settings.rspec.setter_filter(:ruby_opts) { |v| [*v] }
|
84
109
|
|
85
110
|
yield @settings
|
86
111
|
|
112
|
+
if @tasks.include? :gems and GemTaskManager::TASKS.empty?
|
113
|
+
@settings.gems.platform 'ruby'
|
114
|
+
end
|
115
|
+
|
87
116
|
begin
|
88
117
|
require 'rake/clean'
|
89
118
|
CLOBBER.include(*@settings.clobber) if @settings.clobber
|
@@ -143,7 +172,8 @@ module Burke
|
|
143
172
|
Spec::Rake::SpecTask.new 'spec' do |t|
|
144
173
|
t.spec_files = r.spec_files
|
145
174
|
t.spec_opts = opts
|
146
|
-
|
175
|
+
t.ruby_opts = r.ruby_opts if r.ruby_opts
|
176
|
+
end
|
147
177
|
|
148
178
|
begin
|
149
179
|
require 'spec/rake/verify_rcov'
|
@@ -155,7 +185,8 @@ module Burke
|
|
155
185
|
t.rcov = true
|
156
186
|
t.rcov_opts = ['--exclude', 'spec']
|
157
187
|
end
|
158
|
-
|
188
|
+
|
189
|
+
desc "Run specs with RCov and verify code coverage"
|
159
190
|
RCov::VerifyTask.new('spec:rcov:verify' => 'spec:rcov') do |t|
|
160
191
|
t.threshold = r.rcov.threshold
|
161
192
|
t.index_html = 'coverage/index.html'
|
@@ -163,7 +194,15 @@ module Burke
|
|
163
194
|
rescue LoadError
|
164
195
|
end if @tasks.include? :rspec_rcov
|
165
196
|
rescue LoadError
|
166
|
-
end if @tasks.include? :rspec
|
197
|
+
end if @tasks.include? :rspec and !@settings.rspec.spec_files.empty?
|
198
|
+
|
199
|
+
begin
|
200
|
+
require 'rake/testtask'
|
201
|
+
Rake::TestTask.new do |t|
|
202
|
+
t.test_files = @settings.test.test_files
|
203
|
+
end
|
204
|
+
rescue LoadError
|
205
|
+
end if @tasks.include? :test and !@settings.test.test_files.empty?
|
167
206
|
|
168
207
|
begin
|
169
208
|
settings.gems.individuals.each do |conf|
|
@@ -208,6 +247,11 @@ module Burke
|
|
208
247
|
def settings
|
209
248
|
@settings
|
210
249
|
end
|
250
|
+
|
251
|
+
private
|
252
|
+
def readable_file? file
|
253
|
+
File.readable? file and File.file? file
|
254
|
+
end
|
211
255
|
end
|
212
256
|
|
213
257
|
class GemTaskManager
|
data/lib/mash.rb
CHANGED
@@ -1,4 +1,8 @@
|
|
1
1
|
class Mash < Hash
|
2
|
+
def initialize *args, &block
|
3
|
+
super
|
4
|
+
end
|
5
|
+
|
2
6
|
def method_missing name, *args, &block
|
3
7
|
if name.to_s =~ /(.*)=/
|
4
8
|
self.[]=($1, *args, &block)
|
@@ -12,14 +16,33 @@ class Mash < Hash
|
|
12
16
|
end
|
13
17
|
|
14
18
|
def []=(k, *v)
|
19
|
+
k = k.to_s.downcase.to_sym
|
15
20
|
v = *v if v.one?
|
16
|
-
|
21
|
+
v = setter_filters[k].call v if setter_filters.has_key? k
|
22
|
+
super k, v
|
17
23
|
end
|
18
24
|
|
19
25
|
def [](k)
|
20
26
|
v = super(k.to_s.downcase.to_sym)
|
27
|
+
v = getter_filters[k].call v if getter_filters.has_key? k
|
21
28
|
yield v if block_given?
|
22
29
|
v
|
23
30
|
end
|
31
|
+
|
32
|
+
def setter_filter key, &block
|
33
|
+
setter_filters[key.to_sym] = block
|
34
|
+
end
|
35
|
+
|
36
|
+
def getter_filter key, &block
|
37
|
+
getter_filters[key.to_sym] = block
|
38
|
+
end
|
39
|
+
|
40
|
+
def setter_filters
|
41
|
+
@setter_filters ||= {}
|
42
|
+
end
|
43
|
+
|
44
|
+
def getter_filters
|
45
|
+
@getter_filters ||= {}
|
46
|
+
end
|
24
47
|
end
|
25
48
|
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 0.2.
|
8
|
+
- 1
|
9
|
+
version: 0.2.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Aiden Nibali
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-08-
|
17
|
+
date: 2010-08-28 00:00:00 +10:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -46,9 +46,9 @@ files:
|
|
46
46
|
- lib/mash.rb
|
47
47
|
- spec/spec_helper.rb
|
48
48
|
- spec/mash_spec.rb
|
49
|
+
- README.rdoc
|
49
50
|
- Rakefile
|
50
51
|
- VERSION
|
51
|
-
- README.rdoc
|
52
52
|
has_rdoc: true
|
53
53
|
homepage: http://github.com/dismaldenizen/burke
|
54
54
|
licenses: []
|
@@ -56,7 +56,7 @@ licenses: []
|
|
56
56
|
post_install_message:
|
57
57
|
rdoc_options:
|
58
58
|
- --title
|
59
|
-
- burke 0.2.
|
59
|
+
- burke 0.2.1
|
60
60
|
- --main
|
61
61
|
- README.rdoc
|
62
62
|
require_paths:
|