Module: SimpleFacade::Mixin
- Included in:
- Base
- Defined in:
- lib/simple_facade.rb
Instance Method Summary
collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *attrs, &block) ⇒ Object
47
48
49
50
51
52
53
54
55
56
|
# 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
|
Instance Method Details
#facade_delete(key) ⇒ Object
36
37
38
39
40
|
# 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 ⇒ Object
25
26
27
28
|
# File 'lib/simple_facade.rb', line 25
def facade_dequeue
@__members__ = nil
__subjects__.shift
end
|
#facade_enqueue(k, v) ⇒ Object
19
20
21
22
23
|
# 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) ⇒ Object
30
31
32
33
34
|
# 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 ⇒ Object
14
15
16
17
|
# File 'lib/simple_facade.rb', line 14
def facade_pop
@__members__ = nil
__subjects__.pop
end
|
#facade_push(k, v) ⇒ Object
8
9
10
11
12
|
# 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 ⇒ Object
42
43
44
45
|
# File 'lib/simple_facade.rb', line 42
def facade_reverse
@__members__ = nil
__subjects__.reverse!
end
|
#respond_to_missing?(method_name, _include_private = false) ⇒ Boolean
58
59
60
|
# 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
|