Method: Module#liquid_methods

Defined in:
lib/liquid/module_ex.rb

#liquid_methods(*allowed_methods) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/liquid/module_ex.rb', line 45

def liquid_methods(*allowed_methods)
  drop_class = eval "class #{self.to_s}::LiquidDropClass < Liquid::Drop; self; end"
  define_method :to_liquid do
    drop_class.new(self)
  end
  drop_class.class_eval do
    def initialize(object)
      @object = object
    end
    allowed_methods.each do |sym|
      define_method sym do
        @object.send sym
      end
    end
  end
end