Module: Plugs
- Defined in:
- lib/lazy.rb,
lib/plug.rb,
lib/plugs.rb,
lib/version.rb,
lib/refinements.rb,
lib/sub_selector.rb
Defined Under Namespace
Modules: ClassMethods, Refinements, SubSelector
Classes: Lazy, Plug
Constant Summary
collapse
- VERSION =
'0.4.0'
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Instance Attribute Details
#plugs ⇒ Object
Returns the value of attribute plugs.
8
9
10
|
# File 'lib/plugs.rb', line 8
def plugs
@plugs
end
|
Class Method Details
.included(base) ⇒ Object
38
39
40
|
# File 'lib/plugs.rb', line 38
def self.included(base)
base.extend(ClassMethods)
end
|
Instance Method Details
#+(b) ⇒ Object
19
20
21
22
23
|
# File 'lib/plugs.rb', line 19
def +(b)
@plugs.merge!(b.plugs) { |_key, a_values, b_values| [*a_values, *b_values] }
self
end
|
#[](*keys) ⇒ Object
15
16
17
|
# File 'lib/plugs.rb', line 15
def [](*keys)
self.class.new(plugs: SubSelector.sub_select(plugs:, keys:), keys:)
end
|
#initialize(plugs:, keys:) ⇒ Object
10
11
12
13
|
# File 'lib/plugs.rb', line 10
def initialize(plugs:, keys:)
@plugs = plugs
@keys = keys
end
|
#to_a ⇒ Object
25
26
27
|
# File 'lib/plugs.rb', line 25
def to_a
plugs.values.flatten.map(&:result).map { |value| Lazy.unwrap(value) }
end
|
#to_h ⇒ Object
29
30
31
32
33
34
35
36
|
# File 'lib/plugs.rb', line 29
def to_h
plugs.values.each_with_object({}) do |values, hash|
values.each do |plug|
hash[plug.key] ||= []
hash[plug.key] << Lazy.unwrap(plug.result)
end
end
end
|