mattock 0.5.3 → 0.7.0
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 +15 -0
- data/lib/mattock/bundle-command-task.rb +27 -18
- data/lib/mattock/command-line.rb +31 -22
- data/lib/mattock/command-line/command-run-result.rb +4 -4
- data/lib/mattock/configurable/class-methods.rb +1 -5
- data/lib/mattock/configurable/directory-structure.rb +15 -2
- data/lib/mattock/configurable/field-metadata.rb +32 -0
- data/lib/mattock/configurable/field-processor.rb +8 -8
- data/lib/mattock/configurable/instance-methods.rb +8 -0
- data/lib/mattock/task.rb +2 -3
- data/lib/mattock/template-task.rb +51 -0
- data/lib/mattock/testing/rake-example-group.rb +8 -8
- data/spec/configurable.rb +48 -12
- data/spec_help/spec_helper.rb +1 -0
- metadata +23 -53
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NWU5MDFhZGU0YWEwMjNlNzdiMzIyN2IzNTk2MDg1Y2NhODY2YWEwNQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
NWMzNzQwZTFiZjRmNDcxNDdhNjU3YTNhMjY2MmQ4YTIzYmU5YmNiYQ==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MThlMzM0YzMyNjA3MjVlZTNjZWFkZTVhMTZmOGM2MTcxZWJjMzBjMjk2NDdm
|
10
|
+
MzJiYzdiZjE0MmYxNmYxZTdjZmY4YmIzZGI5NjYyYzBkOWZmYTFjM2Q5ZGY3
|
11
|
+
ZTUwN2EwNzkzYjM1ODc2ZjI4ZmYxNGRhZGU0ZDVjNWQ3ZDYxNGQ=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
OWFkNGI4ZmY5YzhlMjFlZDRmNWM0MGQ4NDllNDE2NGE2NWQ1NzM5Mjc3ZWRk
|
14
|
+
OGQyZTgyMGU0NzAzNWNlMzkyZTdlODQ3NWE5NDFhMDYwNTNjZWYyNGMwZGRh
|
15
|
+
Y2Q0MDhlNDIwYjIzMzA0ZDcyMTEwZWMyN2IwYThlNDdjMGRjZDQ=
|
@@ -6,28 +6,37 @@ module Mattock
|
|
6
6
|
env = {}
|
7
7
|
if defined? Bundler
|
8
8
|
%w{
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
9
|
+
BUNDLER_EDITOR
|
10
|
+
BUNDLE_APP_CONFIG
|
11
|
+
BUNDLE_CONFIG
|
12
|
+
BUNDLE_PATH
|
13
|
+
BUNDLE_SPEC_RUN
|
14
|
+
DEBUG
|
15
|
+
DEBUG_RESOLVER
|
16
|
+
EDITOR
|
17
|
+
GEM_HOME
|
18
|
+
GEM_PATH
|
19
|
+
MANPAGER
|
20
|
+
PAGER
|
21
|
+
PATH
|
22
|
+
RB_USER_INSTALL
|
23
|
+
RUBYOPT
|
24
|
+
VISUAL
|
25
|
+
bundle_bin
|
26
|
+
bundle_dir
|
26
27
|
}.each do |bundler_varname|
|
28
|
+
next if ENV[bundler_varname] == Bundler::ORIGINAL_ENV[bundler_varname]
|
27
29
|
env[bundler_varname] = Bundler::ORIGINAL_ENV[bundler_varname]
|
28
30
|
end
|
31
|
+
%w{
|
32
|
+
bundle_bin
|
33
|
+
bundle_dir
|
34
|
+
BUNDLE_BIN_PATH
|
35
|
+
BUNDLE_GEMFILE
|
36
|
+
}.each do |bundler_varname|
|
37
|
+
env[bundler_varname] = nil
|
38
|
+
end
|
29
39
|
end
|
30
|
-
env["BUNDLE_GEMFILE"] = nil
|
31
40
|
env
|
32
41
|
end
|
33
42
|
|
data/lib/mattock/command-line.rb
CHANGED
@@ -2,27 +2,32 @@ require 'mattock/command-line/command-run-result'
|
|
2
2
|
|
3
3
|
module Mattock
|
4
4
|
class CommandLine
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
class << self
|
6
|
+
def define_chain_op(opname, klass)
|
7
|
+
define_method(opname) do |other|
|
8
|
+
unless CommandLine === other
|
9
|
+
other = CommandLine.new(*[*other])
|
10
|
+
end
|
11
|
+
chain = nil
|
12
|
+
if klass === self
|
13
|
+
chain = self
|
14
|
+
else
|
15
|
+
chain = klass.new
|
16
|
+
chain.add(self)
|
17
|
+
end
|
18
|
+
chain.add(other)
|
9
19
|
end
|
10
|
-
chain = nil
|
11
|
-
if klass === self
|
12
|
-
chain = self
|
13
|
-
else
|
14
|
-
chain = klass.new
|
15
|
-
chain.add(self)
|
16
|
-
end
|
17
|
-
chain.add(other)
|
18
20
|
end
|
19
|
-
end
|
20
21
|
|
21
|
-
|
22
|
-
|
22
|
+
def define_op(opname)
|
23
|
+
CommandLine.define_chain_op(opname, self)
|
24
|
+
end
|
25
|
+
|
26
|
+
attr_accessor :output_stream
|
23
27
|
end
|
24
28
|
|
25
29
|
def initialize(executable, *options)
|
30
|
+
@output_stream = self.class.output_stream || $stderr
|
26
31
|
@executable = executable
|
27
32
|
@options = options
|
28
33
|
@redirections = []
|
@@ -30,7 +35,7 @@ module Mattock
|
|
30
35
|
yield self if block_given?
|
31
36
|
end
|
32
37
|
|
33
|
-
attr_accessor :name, :executable, :options, :env
|
38
|
+
attr_accessor :name, :executable, :options, :env, :output_stream
|
34
39
|
attr_reader :redirections
|
35
40
|
|
36
41
|
alias_method :command_environment, :env
|
@@ -87,8 +92,8 @@ module Mattock
|
|
87
92
|
end
|
88
93
|
|
89
94
|
def replace_us
|
90
|
-
puts "Ceding execution to: "
|
91
|
-
puts string_format
|
95
|
+
output_steeam.puts "Ceding execution to: "
|
96
|
+
output_stream.puts string_format
|
92
97
|
Process.exec(command_environment, command)
|
93
98
|
end
|
94
99
|
|
@@ -144,14 +149,18 @@ module Mattock
|
|
144
149
|
collect_result(pid, out, err)
|
145
150
|
end
|
146
151
|
|
152
|
+
def report(message, newline=true)
|
153
|
+
output_stream.print(message + (newline ? "\n" : ""))
|
154
|
+
end
|
155
|
+
|
147
156
|
def run
|
148
|
-
|
157
|
+
report string_format + " ", false
|
149
158
|
result = execute
|
150
|
-
|
151
|
-
|
159
|
+
report "=> #{result.exit_code}"
|
160
|
+
report result.format_streams if verbose
|
152
161
|
return result
|
153
162
|
ensure
|
154
|
-
|
163
|
+
report "" if verbose
|
155
164
|
end
|
156
165
|
|
157
166
|
def succeeds?
|
@@ -74,9 +74,9 @@ module Mattock
|
|
74
74
|
if !@buffered_echo.nil?
|
75
75
|
timeout = begin_echoing - Time.now
|
76
76
|
if timeout < 0
|
77
|
-
|
78
|
-
|
79
|
-
|
77
|
+
@command.report ""
|
78
|
+
@command.report "Long running command output:"
|
79
|
+
@command.report @buffered_echo.join
|
80
80
|
@buffered_echo = nil
|
81
81
|
end
|
82
82
|
end
|
@@ -113,7 +113,7 @@ module Mattock
|
|
113
113
|
begin
|
114
114
|
while chunk = io.read_nonblock(4096)
|
115
115
|
if @buffered_echo.nil?
|
116
|
-
|
116
|
+
@command.report chunk, false
|
117
117
|
else
|
118
118
|
@buffered_echo << chunk
|
119
119
|
end
|
@@ -146,11 +146,7 @@ module Mattock
|
|
146
146
|
end
|
147
147
|
default_values.each do |field|
|
148
148
|
next unless field.is? :defaulting
|
149
|
-
value = field.
|
150
|
-
if Module === value and Configurable > value
|
151
|
-
value = value.new
|
152
|
-
value.class.set_defaults_on(value)
|
153
|
-
end
|
149
|
+
value = field.build_default_value
|
154
150
|
instance.__send__(field.writer_method, value)
|
155
151
|
end
|
156
152
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'rake'
|
2
|
+
|
1
3
|
module Mattock
|
2
4
|
module Configurable
|
3
5
|
class MissingRelativePaths < Exception; end
|
@@ -16,6 +18,11 @@ module Mattock
|
|
16
18
|
setting :absolute_path
|
17
19
|
setting :relative_path
|
18
20
|
|
21
|
+
alias abspath absolute_path
|
22
|
+
alias relpath relative_path
|
23
|
+
|
24
|
+
#No #path - ambiguous whether that would be abspath or pathname
|
25
|
+
|
19
26
|
def initialize(rel_path)
|
20
27
|
self.relative_path = rel_path unless rel_path == Configurable::RequiredField
|
21
28
|
end
|
@@ -30,15 +37,21 @@ module Mattock
|
|
30
37
|
end
|
31
38
|
alias path_name pathname
|
32
39
|
|
40
|
+
if (false)
|
33
41
|
def inspect
|
34
42
|
"<path: #{
|
35
|
-
if
|
36
|
-
|
43
|
+
if field_unset?(:absolute_path)
|
44
|
+
if field_unset?(:relative_path)
|
45
|
+
"<<?>>"
|
46
|
+
else
|
47
|
+
"?/#{relative_path}"
|
48
|
+
end
|
37
49
|
else
|
38
50
|
absolute_path.inspect
|
39
51
|
end
|
40
52
|
}>"
|
41
53
|
end
|
54
|
+
end
|
42
55
|
end
|
43
56
|
|
44
57
|
module ClassMethods
|
@@ -72,6 +72,38 @@ module Mattock
|
|
72
72
|
name
|
73
73
|
end
|
74
74
|
|
75
|
+
def copy_from(instance)
|
76
|
+
return if unset_on?(instance)
|
77
|
+
copy_value(immediate_value_on(instance))
|
78
|
+
end
|
79
|
+
|
80
|
+
def build_default_value
|
81
|
+
if Module === @default_value and Configurable > @default_value
|
82
|
+
value = @default_value.new
|
83
|
+
value.class.set_defaults_on(value)
|
84
|
+
value
|
85
|
+
else
|
86
|
+
copy_value(@default_value)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def copy_value(value)
|
91
|
+
case value
|
92
|
+
when Symbol, Numeric, NilClass, TrueClass, FalseClass
|
93
|
+
value
|
94
|
+
else
|
95
|
+
if value.class == BasicObject
|
96
|
+
value
|
97
|
+
elsif value.respond_to?(:dup)
|
98
|
+
value.dup
|
99
|
+
elsif value.respond_to?(:clone)
|
100
|
+
value.clone
|
101
|
+
else
|
102
|
+
value
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
75
107
|
def immediate_value_on(instance)
|
76
108
|
instance.instance_variable_get(ivar_name)
|
77
109
|
#instance.__send__(reader_method)
|
@@ -8,24 +8,20 @@ module Mattock
|
|
8
8
|
attr_accessor :field_names
|
9
9
|
attr_reader :source
|
10
10
|
|
11
|
-
def filter_attribute
|
12
|
-
raise NotImplementedError
|
13
|
-
end
|
14
|
-
|
15
11
|
def filter(field_names)
|
16
12
|
field_names.find_all do |name|
|
17
13
|
source.class.field_metadata(name).is?(filter_attribute)
|
18
14
|
end
|
19
15
|
end
|
20
16
|
|
21
|
-
def
|
22
|
-
|
17
|
+
def can_process(field, target)
|
18
|
+
target.respond_to?(field.writer_method)
|
23
19
|
end
|
24
20
|
|
25
21
|
def to(target)
|
26
22
|
field_names.each do |name|
|
27
23
|
field = source.class.field_metadata(name)
|
28
|
-
next unless
|
24
|
+
next unless can_process(field, target)
|
29
25
|
target.__send__(field.writer_method, value(field))
|
30
26
|
end
|
31
27
|
end
|
@@ -36,8 +32,12 @@ module Mattock
|
|
36
32
|
:copiable
|
37
33
|
end
|
38
34
|
|
35
|
+
def can_process(field, target)
|
36
|
+
super and not( field.unset_on?(source) and field.unset_on?(target) )
|
37
|
+
end
|
38
|
+
|
39
39
|
def value(field)
|
40
|
-
field.
|
40
|
+
return field.copy_from(source)
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
@@ -1,5 +1,11 @@
|
|
1
|
+
require 'mattock/configurable/directory-structure'
|
2
|
+
|
1
3
|
module Mattock
|
2
4
|
module Configurable
|
5
|
+
def initialize_copy(original)
|
6
|
+
original.copy_settings_to(self)
|
7
|
+
end
|
8
|
+
|
3
9
|
def copy_settings
|
4
10
|
SettingsCopier.new(self)
|
5
11
|
end
|
@@ -52,6 +58,7 @@ module Mattock
|
|
52
58
|
|
53
59
|
#XXX deprecate
|
54
60
|
def unset?(value)
|
61
|
+
warn "#unset? is deprecated - use field_unset? instead"
|
55
62
|
value.nil?
|
56
63
|
end
|
57
64
|
|
@@ -70,6 +77,7 @@ module Mattock
|
|
70
77
|
|
71
78
|
class Struct
|
72
79
|
include Configurable
|
80
|
+
include Configurable::DirectoryStructure
|
73
81
|
end
|
74
82
|
end
|
75
83
|
end
|
data/lib/mattock/task.rb
CHANGED
@@ -59,11 +59,10 @@ module Mattock
|
|
59
59
|
Configurable.included(sub)
|
60
60
|
Configurable::DirectoryStructure.included(sub)
|
61
61
|
DeferredDefinition.add_settings(sub)
|
62
|
+
sub.setting :task_name
|
63
|
+
sub.setting :task_args
|
62
64
|
end
|
63
65
|
|
64
|
-
setting :task_name
|
65
|
-
setting :task_args
|
66
|
-
|
67
66
|
attr_accessor :base_task
|
68
67
|
|
69
68
|
def resolve_configuration
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'mattock/task'
|
2
|
+
module Mattock
|
3
|
+
class TemplateTask < Mattock::Rake::FileTask
|
4
|
+
setting :templates
|
5
|
+
setting :source_path
|
6
|
+
setting :local_variables, {}
|
7
|
+
setting :context
|
8
|
+
|
9
|
+
path :target
|
10
|
+
|
11
|
+
setting :search_dirs, []
|
12
|
+
|
13
|
+
def default_configuration(context)
|
14
|
+
super
|
15
|
+
|
16
|
+
self.context = context
|
17
|
+
|
18
|
+
if field_unset?(:task_name)
|
19
|
+
unless field_unset?(:source_path)
|
20
|
+
target.relative_path = source_path
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def resolve_configuration
|
26
|
+
if field_unset?(:source_path)
|
27
|
+
self.source_path = File::basename(task_name)
|
28
|
+
end
|
29
|
+
|
30
|
+
if target.field_unset?(:relative_path)
|
31
|
+
target.absolute_path = task_name
|
32
|
+
end
|
33
|
+
|
34
|
+
self.templates ||=
|
35
|
+
begin
|
36
|
+
require 'valise'
|
37
|
+
Valise::read_only(*search_dirs).templates
|
38
|
+
end
|
39
|
+
|
40
|
+
resolve_paths
|
41
|
+
|
42
|
+
super
|
43
|
+
end
|
44
|
+
|
45
|
+
def action(args)
|
46
|
+
File::open(target.absolute_path, "w") do |target|
|
47
|
+
target.write(templates.find(source_path).contents.render(context, local_variables))
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -13,6 +13,14 @@ module Mattock
|
|
13
13
|
|
14
14
|
def self.included(mod)
|
15
15
|
mod.class_eval do
|
16
|
+
before :each do
|
17
|
+
@tempdir = File.join "/tmp", "test_mattock_#{$$}"
|
18
|
+
|
19
|
+
@original_PWD = Dir.pwd
|
20
|
+
FileUtils.mkdir_p @tempdir
|
21
|
+
Dir.chdir @tempdir
|
22
|
+
end
|
23
|
+
|
16
24
|
let! :rake do
|
17
25
|
::Rake.application = ::Rake::Application.new
|
18
26
|
::Rake::TaskManager.record_task_metadata = true
|
@@ -43,14 +51,6 @@ module Mattock
|
|
43
51
|
end
|
44
52
|
end
|
45
53
|
|
46
|
-
before :each do
|
47
|
-
@tempdir = File.join "/tmp", "test_mattock_#{$$}"
|
48
|
-
|
49
|
-
@original_PWD = Dir.pwd
|
50
|
-
FileUtils.mkdir_p @tempdir
|
51
|
-
Dir.chdir @tempdir
|
52
|
-
end
|
53
|
-
|
54
54
|
after :each do
|
55
55
|
Dir.chdir @original_PWD
|
56
56
|
FileUtils.rm_rf @tempdir
|
data/spec/configurable.rb
CHANGED
@@ -82,6 +82,30 @@ describe Mattock::Configurable do
|
|
82
82
|
path(:loose_path, "here")
|
83
83
|
end
|
84
84
|
|
85
|
+
describe "distinctness" do
|
86
|
+
let :one do
|
87
|
+
DirectoryThing.new.tap do |thing|
|
88
|
+
thing.setup_defaults
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
let :other do
|
93
|
+
DirectoryThing.new.tap do |thing|
|
94
|
+
thing.setup_defaults
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
it "should have same values" do
|
99
|
+
one.bundle_workdir.relative_path.should == other.bundle_workdir.relative_path
|
100
|
+
end
|
101
|
+
|
102
|
+
it "should have different actual objects" do
|
103
|
+
one.bundle_workdir.relative_path.should_not equal other.bundle_workdir.relative_path
|
104
|
+
one.bundle_workdir.should_not equal other.bundle_workdir
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
108
|
+
|
85
109
|
def subject
|
86
110
|
DirectoryThing.new.tap do |thing|
|
87
111
|
thing.setup_defaults
|
@@ -183,7 +207,10 @@ describe Mattock::Configurable do
|
|
183
207
|
class LeftStruct
|
184
208
|
include Mattock::Configurable
|
185
209
|
|
186
|
-
setting(:normal, 1)
|
210
|
+
setting(:normal, "1")
|
211
|
+
setting(:nested, nested{
|
212
|
+
setting :value, "2"
|
213
|
+
})
|
187
214
|
setting(:no_copy, 2).isnt(:copiable)
|
188
215
|
setting(:no_proxy, 3).isnt(:proxiable)
|
189
216
|
setting(:no_nothing, 4).isnt(:copiable).isnt(:proxiable)
|
@@ -193,7 +220,7 @@ describe Mattock::Configurable do
|
|
193
220
|
class RightStruct
|
194
221
|
include Mattock::Configurable
|
195
222
|
|
196
|
-
required_fields(:normal, :no_copy, :no_proxy, :no_nothing)
|
223
|
+
required_fields(:normal, :nested, :no_copy, :no_proxy, :no_nothing)
|
197
224
|
end
|
198
225
|
|
199
226
|
let :left do
|
@@ -204,24 +231,33 @@ describe Mattock::Configurable do
|
|
204
231
|
RightStruct.new.setup_defaults
|
205
232
|
end
|
206
233
|
|
234
|
+
it "should make copies not references" do
|
235
|
+
left.copy_settings_to(right)
|
236
|
+
right.normal.should == left.normal
|
237
|
+
right.normal.should_not equal(left.normal)
|
238
|
+
right.nested.value.should == left.nested.value
|
239
|
+
right.nested.should_not equal(left.nested)
|
240
|
+
right.nested.value.should_not equal left.nested.value
|
241
|
+
end
|
242
|
+
|
207
243
|
it "should not copy no_copy" do
|
208
244
|
left.copy_settings_to(right)
|
209
|
-
right.
|
210
|
-
right.normal.should == 1
|
211
|
-
right.
|
212
|
-
right.
|
245
|
+
right.field_unset?(:normal).should be_false
|
246
|
+
right.normal.should == "1"
|
247
|
+
right.field_unset?(:no_copy).should be_true
|
248
|
+
right.field_unset?(:no_proxy).should be_false
|
213
249
|
right.no_proxy.should == 3
|
214
|
-
right.
|
250
|
+
right.field_unset?(:no_nothing).should be_true
|
215
251
|
end
|
216
252
|
|
217
253
|
it "should not proxy no_proxy" do
|
218
254
|
left.proxy_settings.to(right)
|
219
|
-
right.
|
220
|
-
right.normal.should == 1
|
221
|
-
right.
|
255
|
+
right.field_unset?(:normal).should be_false
|
256
|
+
right.normal.should == "1"
|
257
|
+
right.field_unset?(:no_copy).should be_false
|
222
258
|
right.no_copy.should == 2
|
223
|
-
right.
|
224
|
-
right.
|
259
|
+
right.field_unset?(:no_proxy).should be_true
|
260
|
+
right.field_unset?(:no_nothing).should be_true
|
225
261
|
end
|
226
262
|
end
|
227
263
|
end
|
data/spec_help/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,98 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mattock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 0.5.3
|
4
|
+
version: 0.7.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Judson Lester
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-11-26 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
15
|
+
requirements:
|
16
|
+
- - ~>
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: 0.0.1
|
15
19
|
prerelease: false
|
16
|
-
type: :development
|
17
20
|
name: corundum
|
18
21
|
version_requirements: !ruby/object:Gem::Requirement
|
19
22
|
requirements:
|
20
23
|
- - ~>
|
21
24
|
- !ruby/object:Gem::Version
|
22
25
|
version: 0.0.1
|
23
|
-
|
26
|
+
type: :development
|
27
|
+
- !ruby/object:Gem::Dependency
|
24
28
|
requirement: !ruby/object:Gem::Requirement
|
25
29
|
requirements:
|
26
30
|
- - ~>
|
27
31
|
- !ruby/object:Gem::Version
|
28
|
-
version:
|
29
|
-
none: false
|
30
|
-
- !ruby/object:Gem::Dependency
|
32
|
+
version: '10.0'
|
31
33
|
prerelease: false
|
32
|
-
type: :runtime
|
33
34
|
name: rake
|
34
35
|
version_requirements: !ruby/object:Gem::Requirement
|
35
36
|
requirements:
|
36
37
|
- - ~>
|
37
38
|
- !ruby/object:Gem::Version
|
38
|
-
segments:
|
39
|
-
- 10
|
40
|
-
- 0
|
41
39
|
version: '10.0'
|
42
|
-
|
40
|
+
type: :runtime
|
41
|
+
- !ruby/object:Gem::Dependency
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
44
43
|
requirements:
|
45
|
-
- -
|
44
|
+
- - ! '>='
|
46
45
|
- !ruby/object:Gem::Version
|
47
|
-
|
48
|
-
- 10
|
49
|
-
- 0
|
50
|
-
version: '10.0'
|
51
|
-
none: false
|
52
|
-
- !ruby/object:Gem::Dependency
|
46
|
+
version: 0.9.1
|
53
47
|
prerelease: false
|
54
|
-
type: :runtime
|
55
48
|
name: valise
|
56
49
|
version_requirements: !ruby/object:Gem::Requirement
|
57
50
|
requirements:
|
58
51
|
- - ! '>='
|
59
52
|
- !ruby/object:Gem::Version
|
60
|
-
segments:
|
61
|
-
- 0
|
62
|
-
- 9
|
63
|
-
- 1
|
64
53
|
version: 0.9.1
|
65
|
-
|
54
|
+
type: :runtime
|
55
|
+
- !ruby/object:Gem::Dependency
|
66
56
|
requirement: !ruby/object:Gem::Requirement
|
67
57
|
requirements:
|
68
|
-
- - ! '
|
58
|
+
- - ! '>'
|
69
59
|
- !ruby/object:Gem::Version
|
70
|
-
|
71
|
-
- 0
|
72
|
-
- 9
|
73
|
-
- 1
|
74
|
-
version: 0.9.1
|
75
|
-
none: false
|
76
|
-
- !ruby/object:Gem::Dependency
|
60
|
+
version: '0'
|
77
61
|
prerelease: false
|
78
|
-
type: :runtime
|
79
62
|
name: tilt
|
80
63
|
version_requirements: !ruby/object:Gem::Requirement
|
81
64
|
requirements:
|
82
65
|
- - ! '>'
|
83
66
|
- !ruby/object:Gem::Version
|
84
|
-
segments:
|
85
|
-
- 0
|
86
|
-
version: '0'
|
87
|
-
none: false
|
88
|
-
requirement: !ruby/object:Gem::Requirement
|
89
|
-
requirements:
|
90
|
-
- - ! '>'
|
91
|
-
- !ruby/object:Gem::Version
|
92
|
-
segments:
|
93
|
-
- 0
|
94
67
|
version: '0'
|
95
|
-
|
68
|
+
type: :runtime
|
96
69
|
description: ! " If Rake won't do it by itself, you oughtta Mattock.\n\n If you
|
97
70
|
survived the pun, you might enjoy this gem.\n\n Features:\n\n * Extensions to
|
98
71
|
Tasklibs to support powerful deerpaths.\n * A commandline library that supports
|
@@ -123,6 +96,7 @@ files:
|
|
123
96
|
- lib/mattock/bundle-command-task.rb
|
124
97
|
- lib/mattock/tasklib.rb
|
125
98
|
- lib/mattock/task.rb
|
99
|
+
- lib/mattock/template-task.rb
|
126
100
|
- lib/mattock/configurable.rb
|
127
101
|
- lib/mattock/configurable/field-processor.rb
|
128
102
|
- lib/mattock/configurable/proxy-value.rb
|
@@ -147,33 +121,29 @@ files:
|
|
147
121
|
homepage: http://nyarly.github.com/mattock/
|
148
122
|
licenses:
|
149
123
|
- MIT
|
124
|
+
metadata: {}
|
150
125
|
post_install_message:
|
151
126
|
rdoc_options:
|
152
127
|
- --inline-source
|
153
128
|
- --main
|
154
129
|
- doc/README
|
155
130
|
- --title
|
156
|
-
- mattock-0.
|
131
|
+
- mattock-0.7.0 RDoc
|
157
132
|
require_paths:
|
158
133
|
- lib/
|
159
134
|
required_ruby_version: !ruby/object:Gem::Requirement
|
160
135
|
requirements:
|
161
136
|
- - ! '>='
|
162
137
|
- !ruby/object:Gem::Version
|
163
|
-
segments:
|
164
|
-
- 0
|
165
|
-
hash: 509890867
|
166
138
|
version: '0'
|
167
|
-
none: false
|
168
139
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
140
|
requirements:
|
170
141
|
- - ! '>='
|
171
142
|
- !ruby/object:Gem::Version
|
172
143
|
version: '0'
|
173
|
-
none: false
|
174
144
|
requirements: []
|
175
145
|
rubyforge_project: mattock
|
176
|
-
rubygems_version: 1.
|
146
|
+
rubygems_version: 2.1.10
|
177
147
|
signing_key:
|
178
148
|
specification_version: 3
|
179
149
|
summary: A powerful companion to Rake
|