module Contextualize

Public Class Methods

included(base) click to toggle source
# File lib/contextualize.rb, line 39
def self.included base
  base.extend ClassMethods
end

Public Instance Methods

add_context(name) click to toggle source
# File lib/contextualize.rb, line 59
def add_context name
  context(name).each do |const|
    self.send :mixin, const
  end
  self
end
Also aliased as: enter_context
add_contexts(*names) click to toggle source
# File lib/contextualize.rb, line 47
def add_contexts *names
  names.each {|name| add_context(name) }
  self
end
Also aliased as: enter_contexts
context_map() click to toggle source
# File lib/contextualize.rb, line 43
def context_map
  self.class.context_map || {}
end
enter_context(name)
Alias for: add_context
enter_contexts(*names)
Alias for: add_contexts
exit_context(name)
Alias for: remove_context
exit_contexts(*names)
Alias for: remove_contexts
remove_context(name) click to toggle source
# File lib/contextualize.rb, line 67
def remove_context name
  return if !context(name) || context(name).empty? 
  context(name).each do |const|
    self.send :unmix, const
  end
  self
end
Also aliased as: exit_context
remove_contexts(*names) click to toggle source
# File lib/contextualize.rb, line 53
def remove_contexts *names
  names.each {|name| remove_context(name) }
  self
end
Also aliased as: exit_contexts

Protected Instance Methods

context(name) click to toggle source
# File lib/contextualize.rb, line 78
def context name
  mods = context_map[name.to_sym] || []
  [mods].flatten
end