module Querylet::Context

Public Instance Methods

add_item(key, value) click to toggle source
# File lib/querylet/context.rb, line 7
def add_item(key, value)
  locals[key.to_sym] = value
end
add_items(hash) click to toggle source
# File lib/querylet/context.rb, line 11
def add_items(hash)
  hash.map { |k, v| add_item(k, v) }
end
get(value) click to toggle source
# File lib/querylet/context.rb, line 3
def get(value)
  @data.merge(locals)[value.to_sym]
end
with_temporary_context(args = {}) { || ... } click to toggle source
# File lib/querylet/context.rb, line 15
def with_temporary_context(args = {})
  saved = args.keys.collect { |key| [key, get(key.to_s)] }.to_h

  add_items(args)
  block_result = yield
  locals.merge!(saved)

  block_result
end

Private Instance Methods

locals() click to toggle source
# File lib/querylet/context.rb, line 27
def locals
  @locals ||= {}
end