Class: Natives::Catalog::Selector

Inherits:
Object
  • Object
show all
Defined in:
lib/natives/catalog/selector.rb

Instance Method Summary collapse

Constructor Details

#initialize(hash) ⇒ Selector

Returns a new instance of Selector.



6
7
8
# File 'lib/natives/catalog/selector.rb', line 6

def initialize(hash)
  @values = normalize(hash)
end

Instance Method Details

#values_for(package_provider, platform, platform_version) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/natives/catalog/selector.rb', line 10

def values_for(package_provider, platform, platform_version)
  package_provider = package_provider.to_s
  platform = platform.to_s
  platform_version = platform_version.to_s

  values = nil
  platforms = @values.fetch(package_provider, nil)
  if platforms
    versions  = platforms.fetch(platform, nil)
    if versions
      values = versions.fetch(platform_version, nil) ||
        versions.fetch('default', nil)
    else
      values = platforms.fetch('default', nil)
    end
  end

  Array(values)
end