class Granite::Projector

Attributes

action[R]

Public Class Methods

controller_class() click to toggle source
# File lib/granite/projector.rb, line 18
def self.controller_class
  return Granite::Controller unless superclass.respond_to?(:controller_class)

  @controller_class ||= Class.new(superclass.controller_class).tap do |klass|
    klass.projector_class = self
  end
end
new(*args) click to toggle source
# File lib/granite/projector.rb, line 34
def initialize(*args)
  @action = if args.first.is_a?(Granite::Action) # Temporary solutions for backwards compatibility.
              args.first
            else
              build_action(*args)
            end
end
projector_name() click to toggle source
# File lib/granite/projector.rb, line 30
def self.projector_name
  @projector_name ||= name.demodulize.remove(/Projector$/).underscore
end
projector_path() click to toggle source
# File lib/granite/projector.rb, line 26
def self.projector_path
  @projector_path ||= name.remove(/Projector$/).underscore
end

Private Instance Methods

build_action(*args) click to toggle source
# File lib/granite/projector.rb, line 44
def build_action(*args)
  action_class.as(self.class.proxy_performer).new(*args)
end