module Sprinkle
#--
# TODO: Possible documentation?
#++
module Configurable #:nodoc:
attr_accessor :delivery
def defaults(deployment)
defaults = deployment.defaults[self.class.name.split(/::/).last.downcase.to_sym]
self.instance_eval(&defaults) if defaults
@delivery = deployment.style
end
def assert_delivery
raise 'Unknown command delivery target' unless @delivery
end
def method_missing(sym, *args, &block)
unless args.empty? # mutate if not set
@options ||= {}
@options[sym] = *args unless @options[sym]
end
@options[sym] || @package.send(sym, *args, &block) # try the parents options if unknown
end
def option?(sym)
!@options[sym].nil?
end
end
end