module Contextualize::ClassMethods

Attributes

context_map[R]

Public Instance Methods

context(name, *constants) click to toggle source
# File lib/contextualize.rb, line 10
def context name, *constants
  @context_map ||= {}
  context_modules = if constants.flatten.empty?
    const_by_convention(name)
  else
    select_modules constants
  end
  @context_map[name.to_sym] = context_modules
end
contexts(*names) click to toggle source
# File lib/contextualize.rb, line 20
def contexts *names
  names.flatten.each do |name|
    context name, const_by_convention(name)
  end
end

Protected Instance Methods

const_by_convention(name) click to toggle source
# File lib/contextualize.rb, line 28
def const_by_convention name
  cls_name = self.name.demodulize
  const_name = "#{cls_name}#{name.to_s.camelize}"
  const_name.constantize
end
select_modules(constants) click to toggle source
# File lib/contextualize.rb, line 34
def select_modules constants
  constants.select {|c| c.is_a?(Module) && !c.respond_to?(:new) }
end