module Temple::Mixins::Options

def self.included(base)

def self.included(base)
  base.class_eval do
    extend DefaultOptions
    extend ThreadOptions
  end
end

def initialize(opts = {})

def initialize(opts = {})
  self.class.default_options.validate_hash!(opts)
  self.class.default_options.validate_hash!(self.class.thread_options) if self.class.thread_options
  @options = ImmutableHash.new({}.update(self.class.default_options).update(self.class.thread_options || {}).update(opts))
end