module Haml::Util
def def_static_method(klass, name, args, *vars)
-
vars
(Array
) -- The names of the static boolean variables -
args
(Array
) -- The names of the arguments to the defined methods -
name
(#to_s
) -- The (base) name of the static method -
klass
(Module
) -- The class on which to define the static method
Overloads:
-
def_static_method(klass, name, args, *vars, erb)
def def_static_method(klass, name, args, *vars) erb = vars.pop info = caller_info powerset(vars).each do |set| context = StaticConditionalContext.new(set).instance_eval {binding} method_content = (defined?(Erubis::TinyEruby) && Erubis::TinyEruby || ERB).new(erb).result(context) klass.class_eval(<<METHOD, info[0], info[1]) def #{static_method_name(name, *vars.map {|v| set.include?(v)})}(#{args.join(', ')}) #{method_content} end OD end end