lib/cfer/block.rb in cfer-0.4.2 vs lib/cfer/block.rb in cfer-0.5.0.pre.rc1
- old
+ new
@@ -10,18 +10,26 @@
Docile.dsl_eval(self, *args, &block) if block
post_block
self
end
+ # Evaluates a DSL from a Ruby string
+ # @param args [Array<Object>] Extra arguments to be passed into the block
+ # @param str [String] The Cfer source template to evaluate
+ # @param file [File] The file that will be reported in any error messages
+ def build_from_string(*args, str, file)
+ build_from_block(*args) do
+ instance_eval str, file
+ end
+ self
+ end
+
# Evaluates a DSL from a Ruby script file
# @param args [Array<Object>] (see: #build_from_block)
# @param file [File] The Ruby script to evaluate
def build_from_file(*args, file)
- build_from_block(*args) do
- instance_eval File.read(file), file
- end
- self
+ build_from_string File.read(file), file
end
# Executed just before the DSL is evaluated
def pre_block
end
@@ -29,16 +37,26 @@
# Executed just after the DSL is evaluated
def post_block
end
end
+ # BlockHash is a Block that responds to DSL-style properties.
class BlockHash < Block
- NON_PROXIED_METHODS = [:parameters, :options, :lookup_output]
+ NON_PROXIED_METHODS = [
+ :parameters,
+ :options,
+ :lookup_output,
+ :lookup_outputs
+ ].freeze
+ # Directly sets raw properties in the underlying CloudFormation structure.
+ # @param keyvals [Hash] The properties to set on this object.
def properties(keyvals = {})
self.merge!(keyvals)
end
+ # Gets the current value of a given property
+ # @param key [String] The name of the property to fetch
def get_property(key)
self.fetch key
end
def respond_to?(method_sym)