module SimpleFacade::Mixin

Public Instance Methods

facade_delete(key) click to toggle source
# File lib/simple_facade.rb, line 36
def facade_delete(key)
  return if key.nil?
  @__members__ = nil
  __subjects__.delete_at(__subjects__.index { |el| el.first == key })
end
facade_dequeue() click to toggle source
# File lib/simple_facade.rb, line 25
def facade_dequeue
  @__members__ = nil
  __subjects__.shift
end
facade_enqueue(k, v) click to toggle source
# File lib/simple_facade.rb, line 19
def facade_enqueue(k, v)
  return if v.nil? || k.nil? || key_exists?(k)
  @__members__ = nil
  __subjects__.unshift([k, v])
end
facade_insert(index, k, v) click to toggle source
# File lib/simple_facade.rb, line 30
def facade_insert(index, k, v)
  return if v.nil? || k.nil? || index.nil? || key_exists?(k)
  @__members__ = nil
  __subjects__.insert(index, [k, v])
end
facade_pop() click to toggle source
# File lib/simple_facade.rb, line 14
def facade_pop
  @__members__ = nil
  __subjects__.pop
end
facade_push(k, v) click to toggle source
# File lib/simple_facade.rb, line 8
def facade_push(k, v)
  return if v.nil? || k.nil? || key_exists?(k)
  @__members__ = nil
  __subjects__.push([k, v])
end
facade_reverse() click to toggle source
# File lib/simple_facade.rb, line 42
def facade_reverse
  @__members__ = nil
  __subjects__.reverse!
end
method_missing(method_name, *attrs, &block) click to toggle source
Calls superclass method
# File lib/simple_facade.rb, line 47
def method_missing(method_name, *attrs, &block)
  member = __members__[method_name]
  return member if member
  responder = __members__.values.detect { |obj| obj.respond_to?(method_name) }
  if responder
    responder.public_send(method_name, *attrs, &block)
  else
    super
  end
end
respond_to_missing?(method_name, _include_private = false) click to toggle source
# File lib/simple_facade.rb, line 58
def respond_to_missing?(method_name, _include_private = false)
  !__members__[method_name].nil? || __members__.values.any? { |obj| obj.respond_to?(method_name) }
end

Private Instance Methods

__members__() click to toggle source
# File lib/simple_facade.rb, line 68
def __members__
  @__members__ ||= __subjects__.to_h
end
__subjects__() click to toggle source
# File lib/simple_facade.rb, line 64
def __subjects__
  @__subjects__ ||= []
end
key_exists?(key) click to toggle source
# File lib/simple_facade.rb, line 72
def key_exists?(key)
  __members__.keys.include?(key)
end