class Flagship::Context

Public Instance Methods

__set(key, value) click to toggle source
# File lib/flagship/context.rb, line 7
def __set(key, value)
  current_values[key.to_sym] = value
end
method_missing(name, args = [], &block) click to toggle source
Calls superclass method
# File lib/flagship/context.rb, line 11
def method_missing(name, args = [], &block)
  if current_values.key?(name)
    value = current_values[name]

    if value.respond_to?(:call)
      value.call
    else
      value
    end
  else
    super
  end
end
respond_to_missing?(name, include_private = false) click to toggle source
Calls superclass method
# File lib/flagship/context.rb, line 25
def respond_to_missing?(name, include_private = false)
  current_values.key?(name) or super
end
with_values(new_values, &block) click to toggle source
# File lib/flagship/context.rb, line 29
def with_values(new_values, &block)
  original_values = current_values
  self.current_values = current_values.dup.merge(new_values)
  block.call
ensure
  self.current_values = original_values
end

Private Instance Methods

current_values() click to toggle source
# File lib/flagship/context.rb, line 39
def current_values
  Thread.current[:__flagship_context_values] ||= {}
end
current_values=(new_values) click to toggle source
# File lib/flagship/context.rb, line 43
def current_values=(new_values)
  Thread.current[:__flagship_context_values] = new_values
end