module Pakyow::Application::Behavior::Presenter::Modes

Attributes

__ui_modes[RW]

Public Class Methods

new(*) click to toggle source
Calls superclass method
# File lib/pakyow/application/behavior/presenter/modes.rb, line 42
def initialize(*)
  @__ui_modes = Hash[
    self.class.__ui_modes.map { |name, block|
      [name, wrap_mode_block(block)]
    }
  ]

  super
end

Public Instance Methods

mode(name, &block) click to toggle source
# File lib/pakyow/application/behavior/presenter/modes.rb, line 21
def mode(name, &block)
  @__ui_modes[name.to_sym] = wrap_mode_block(block)
end

Private Instance Methods

wrap_mode_block(block) click to toggle source
# File lib/pakyow/application/behavior/presenter/modes.rb, line 25
        def wrap_mode_block(block)
  if is_a?(Plugin)
    wrap_mode_block_for_plug(self, block)
  else
    Proc.new do |connection|
      isolated(:ModeCallContext).new(connection).instance_eval(&block)
    end
  end
end
wrap_mode_block_for_plug(plug, block) click to toggle source
# File lib/pakyow/application/behavior/presenter/modes.rb, line 35
        def wrap_mode_block_for_plug(plug, block)
  Proc.new do |connection|
    plug.helper_caller(:passive, connection, plug).instance_eval(&block)
  end
end