Method: Granite::Action::Projectors::ClassMethods#projector

Defined in:
lib/granite/action/projectors.rb

#projector(name, options = {}, &block) ⇒ Object



84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/granite/action/projectors.rb', line 84

def projector(name, options = {}, &block)
  _projectors.store(name, options, &block)

  class_eval <<-METHOD, __FILE__, __LINE__ + 1
    def self.#{name}
      _projectors.fetch(:#{name})
    end

    def #{name}
      @#{name} ||= self.class._projectors.fetch(:#{name}).new(self)
    end
  METHOD
end