class Lolita::Register

Public Class Methods

new() click to toggle source
# File lib/lolita/register.rb, line 4
def initialize
  @store = {}
end

Public Instance Methods

filter(*args) click to toggle source
# File lib/lolita/register.rb, line 20
def filter *args
  options = args.extract_options!
  values = if args.first
    [get_with_options(args.first)]
  else
    @store.values
  end
  filter_values(values,options)
end
get(key) click to toggle source
# File lib/lolita/register.rb, line 12
def get key
  item = @store[key] and item.first
end
get_with_options(key) click to toggle source
# File lib/lolita/register.rb, line 16
def get_with_options key
  @store[key]
end
set(key, value, options=nil) click to toggle source
# File lib/lolita/register.rb, line 8
def set key, value, options=nil
  !!(@store[key] = [value,options].compact)
end

Private Instance Methods

filter_values(values, pattern) click to toggle source
# File lib/lolita/register.rb, line 32
def filter_values values, pattern
  unless (pattern && pattern.any?)
    values
  else
    values.inject([]) do |result,value|
      if value[1]
        if (pattern.to_a - value[1].to_a).empty?
          result.push value
        end
      end
      result
    end
  end
end