shadow_puppet 0.1.14 → 0.1.16
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/shadow_puppet.rb +3 -0
- data/lib/shadow_puppet/core_ext.rb +1 -22
- data/lib/shadow_puppet/manifest.rb +5 -12
- metadata +12 -2
data/lib/shadow_puppet.rb
CHANGED
@@ -1,24 +1,3 @@
|
|
1
1
|
require 'active_support/core_ext/class/attribute_accessors'
|
2
2
|
require 'active_support/core_ext/array'
|
3
|
-
require 'active_support/inflector'
|
4
|
-
require 'active_support/core_ext/hash/indifferent_access'
|
5
|
-
require 'active_support/core_ext/class/inheritable_attributes'
|
6
|
-
require 'active_support/core_ext/duplicable'
|
7
|
-
class Hash #:nodoc:
|
8
|
-
include ActiveSupport::CoreExtensions::Hash::IndifferentAccess
|
9
|
-
|
10
|
-
# Returns a new hash with +self+ and +other_hash+ merged recursively.
|
11
|
-
def deep_merge(other_hash)
|
12
|
-
self.merge(other_hash) do |key, oldval, newval|
|
13
|
-
oldval = oldval.to_hash if oldval.respond_to?(:to_hash)
|
14
|
-
newval = newval.to_hash if newval.respond_to?(:to_hash)
|
15
|
-
oldval.class.to_s == 'Hash' && newval.class.to_s == 'Hash' ? oldval.deep_merge(newval) : newval
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
# Returns a new hash with +self+ and +other_hash+ merged recursively.
|
20
|
-
# Modifies the receiver in place.
|
21
|
-
def deep_merge!(other_hash)
|
22
|
-
replace(deep_merge(other_hash))
|
23
|
-
end
|
24
|
-
end
|
3
|
+
require 'active_support/inflector'
|
@@ -1,6 +1,3 @@
|
|
1
|
-
require 'puppet'
|
2
|
-
require 'erb'
|
3
|
-
|
4
1
|
module ShadowPuppet
|
5
2
|
# A Manifest is an executable collection of Puppet Resources[http://reductivelabs.com/trac/puppet/wiki/TypeReference].
|
6
3
|
#
|
@@ -114,13 +111,13 @@ module ShadowPuppet
|
|
114
111
|
return nil if methods.nil? || methods == []
|
115
112
|
options = methods.extract_options!
|
116
113
|
methods.each do |meth|
|
117
|
-
options =
|
114
|
+
options = configatron.send(meth.to_sym) if options == {}
|
118
115
|
options ||= {}
|
119
116
|
recipes << [meth.to_sym, options]
|
120
117
|
end
|
121
118
|
end
|
122
119
|
|
123
|
-
# A
|
120
|
+
# A hash describing any configuration that has been
|
124
121
|
# performed on the class. Modify this hash by calling configure:
|
125
122
|
#
|
126
123
|
# class SampleManifest < ShadowPuppet::Manifest
|
@@ -133,7 +130,7 @@ module ShadowPuppet
|
|
133
130
|
# Subclasses of the Manifest class properly inherit the parent classes'
|
134
131
|
# configuration.
|
135
132
|
def self.configuration
|
136
|
-
|
133
|
+
configatron.to_hash
|
137
134
|
end
|
138
135
|
|
139
136
|
# Access to the configuration of the creating class.
|
@@ -156,11 +153,7 @@ module ShadowPuppet
|
|
156
153
|
# Subsequent calls to configure perform a deep_merge of the
|
157
154
|
# provided <tt>hash</tt> into the pre-existing configuration
|
158
155
|
def self.configure(hash)
|
159
|
-
hash
|
160
|
-
write_inheritable_attribute(:configuration, hash.deep_merge(configuration))
|
161
|
-
end
|
162
|
-
class << self
|
163
|
-
alias_method :configuration=, :configure
|
156
|
+
configatron.configure_from_hash(hash)
|
164
157
|
end
|
165
158
|
|
166
159
|
# Define configuration on this manifest's creating class. This is useful
|
@@ -338,4 +331,4 @@ end
|
|
338
331
|
|
339
332
|
Dir.glob(File.join(File.dirname(__FILE__), '..', 'facts', '*.rb')).each do |fact|
|
340
333
|
require fact
|
341
|
-
end
|
334
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shadow_puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jesse Newland
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-03-
|
12
|
+
date: 2009-03-06 00:00:00 -05:00
|
13
13
|
default_executable: shadow_puppet
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -62,6 +62,16 @@ dependencies:
|
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: 2.0.0
|
64
64
|
version:
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: configatron
|
67
|
+
type: :runtime
|
68
|
+
version_requirement:
|
69
|
+
version_requirements: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 2.2.2
|
74
|
+
version:
|
65
75
|
description: A Ruby Puppet DSL
|
66
76
|
email:
|
67
77
|
- jesse@railsmachine.com
|