Sha256: 878e9866d5ff11ca889e01b210a62fc86528ba57ca2b1f974f691e3950acce35
Contents?: true
Size: 1.22 KB
Versions: 1
Compression:
Stored size: 1.22 KB
Contents
require "blueprint/components" require "blueprint/utils" require "yaml" class Blueprint include Utils include BlueprintComponents def initialize(blueprint_def) @def = blueprint_def end def provides(*args) opts = args.last.is_a?(Hash) ? args.pop : nil s = (@def[:content] = args.pop) if opts @def.merge!(opts) else @def[:script] = "#{s}.sh" @def[:email] = "#{s}.markdown" end (errors ||= []) << "provides requires an argument" unless @def.has_key?(:email) (errors ||= []) << "no email template found for #{@def[:content]}" unless @def.has_key?(:email) (errors ||= []) << "no script found for #{@def[:content]}" unless @def.has_key?(:script) raise "Errors: #{errors * ", "}" if errors end def requires(req) if req.is_a?(Hash) requirement_def = { :group => req[:group], :contains => req[:with] } else requirement_def = { :group => req, :contains => req } end (@def[:dependencies] ||= []) << requirement_def end def attributes(attrs) @def[:attributes] = attrs end def outputs(attrs) @def[:output_params] = attrs end def to_yaml stringify_keys(@def, true).to_yaml end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
webbynode-blueprint-0.0.1 | lib/blueprint/blueprint.rb |