Class: Accord::BaseLookup

Inherits:
Object
  • Object
show all
Defined in:
lib/accord/base_registry.rb

Direct Known Subclasses

AdapterLookup, SubscriberLookup

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(order, extendors) ⇒ BaseLookup

Returns a new instance of BaseLookup.



29
30
31
32
33
34
# File 'lib/accord/base_registry.rb', line 29

def initialize(order, extendors)
  @order = order
  @extendors = extendors
  @hash = NestedKeyHash.new
  super()
end

Instance Attribute Details

#extendorsObject (readonly)

Returns the value of attribute extendors.



27
28
29
# File 'lib/accord/base_registry.rb', line 27

def extendors
  @extendors
end

#hashObject (readonly)

Returns the value of attribute hash.



27
28
29
# File 'lib/accord/base_registry.rb', line 27

def hash
  @hash
end

#orderObject (readonly)

Returns the value of attribute order.



27
28
29
# File 'lib/accord/base_registry.rb', line 27

def order
  @order
end

Instance Method Details

#[](key) ⇒ Object



36
37
38
39
# File 'lib/accord/base_registry.rb', line 36

def [](key)
  required, provided, name = key
  hash[required + [provided] + [name]]
end

#[]=(key, value) ⇒ Object



41
42
43
44
45
# File 'lib/accord/base_registry.rb', line 41

def []=(key, value)
  required, provided, name = key
  extendors.add(provided)
  hash[required + [provided] + [name]] = value
end

#delete(key) ⇒ Object



51
52
53
54
55
# File 'lib/accord/base_registry.rb', line 51

def delete(key)
  required, provided, name = key
  extendors.delete(provided)
  hash.delete(required + [provided] + [name])
end

#partial(required, provided) ⇒ Object



47
48
49
# File 'lib/accord/base_registry.rb', line 47

def partial(required, provided)
  (hash[required + [provided]] || []).sort_by { |name, value| name }
end