module Frill

Public Class Methods

decorate(object, context, options={}) click to toggle source
# File lib/frill/frill.rb, line 19
def self.decorate object, context, options={}
  frills = decorators

  if subset = options[:with]
    frills.select! {|d| subset.include? d}
  end

  frills.each do |f|
    object.extend f if f.frill? object, context
  end

  object
end
decorators() click to toggle source
# File lib/frill/frill.rb, line 9
def self.decorators
  @decorators ||= dependency_graph.to_a
  @decorators.dup
end
dependency_graph() click to toggle source
# File lib/frill/frill.rb, line 33
def self.dependency_graph
  @dependency_graph ||= DependencyGraph.new
end
included(base) click to toggle source
# File lib/frill/frill.rb, line 4
def self.included base
  self.dependency_graph.add base
  base.extend ClassMethods
end
reset!() click to toggle source
# File lib/frill/frill.rb, line 14
def self.reset!
  @decorators = nil
  @dependency_graph = nil
end