Class: StimulusPlumbers::Themes::Icons::Registry

Inherits:
SimpleDelegator
  • Object
show all
Defined in:
lib/stimulus_plumbers/themes/icons/registry.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sources:, aliases: {}) ⇒ Registry

Returns a new instance of Registry.



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/stimulus_plumbers/themes/icons/registry.rb', line 11

def initialize(sources:, aliases: {})
  @sources = sources
  @aliases = aliases
  super(
    Hash.new do |h, key|
      resolved = aliases.fetch(key, key)
      value = nil
      sources.each { |s| break if (value = s.fetch(resolved)) }
      h[key] = value if value
      value
    end
  )
end

Instance Attribute Details

#aliasesObject (readonly)

Returns the value of attribute aliases.



9
10
11
# File 'lib/stimulus_plumbers/themes/icons/registry.rb', line 9

def aliases
  @aliases
end

Instance Method Details

#key?(name) ⇒ Boolean Also known as: include?, has_key?, member?

Returns:

  • (Boolean)


25
26
27
28
29
# File 'lib/stimulus_plumbers/themes/icons/registry.rb', line 25

def key?(name)
  __getobj__.key?(name) ||
    aliases.key?(name) ||
    @sources.any? { |s| s.include?(aliases.fetch(name, name)) }
end