module Outil::Inferace

Public Class Methods

decorate() click to toggle source
# File lib/outil.rb, line 63
def self.decorate
    RubyDecorators::Stack.all << self
    Workspace.sync
end
registered_decorators() click to toggle source
# File lib/outil.rb, line 104
def self.registered_decorators
    @registered_decorators ||= {}
end

Public Instance Methods

decorators() click to toggle source
# File lib/outil.rb, line 83
def decorators
    @decorators ||= {}
end
name() click to toggle source
# File lib/outil.rb, line 79
def name
    @name ||= self.class.name.to_s
end
named(name) click to toggle source
# File lib/outil.rb, line 68
        def named(name)
            @name = name.to_s
            class_eval <<-RUBY_EVAL
            def self.#{@name}(dcr)
                if decorators[dcr]
                    self.decorate(decorators[dcr])
                end
            end
            RUBY_EVAL
        end
registered_methods() click to toggle source
# File lib/outil.rb, line 100
def registered_methods
    @registered_methods ||= {}
end
use(*decs) click to toggle source
# File lib/outil.rb, line 87
def use *decs
    append = Proc.new do |dec|
        fmt = dec.name.split('::').last.
        gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
        gsub(/([a-z\d])([A-Z])/,'\1_\2').
        tr("-", "_").
        downcase.
        to_sym
        self.decorators[fmt] = dec
    end
    decs.each &append
end