class BluePrint::ActiveIf

Constants

NAMED_ACTIVE_IFS_MAP

Public Class Methods

new(name = nil, &logic) click to toggle source
# File lib/blue_print/active_if.rb, line 14
def initialize(name = nil, &logic)
  @name = name
  @logic = logic

  NAMED_ACTIVE_IFS_MAP[name] = self unless anonymous?
end
resolve(name) click to toggle source
# File lib/blue_print/active_if.rb, line 6
def self.resolve(name)
  if name.respond_to?(:active?)
    name
  else
    NAMED_ACTIVE_IFS_MAP[name.to_s.to_sym]
  end
end

Public Instance Methods

active?() click to toggle source
# File lib/blue_print/active_if.rb, line 33
def active?
  return BluePrint.env[cache_key] if BluePrint.env.key?(cache_key)

  BluePrint.env[cache_key] = BluePrint.env.within(&@logic)
end
anonymous?() click to toggle source
# File lib/blue_print/active_if.rb, line 25
def anonymous?
  name.nil?
end
cache_key() click to toggle source
# File lib/blue_print/active_if.rb, line 29
def cache_key
  @cache_key ||= "blue_print_active_id_#{name || object_id}".to_sym
end
deactive?() click to toggle source
# File lib/blue_print/active_if.rb, line 39
def deactive?
  !active?
end
name() click to toggle source
# File lib/blue_print/active_if.rb, line 21
def name
  @name ? @name.to_s.to_sym : nil
end