class Natives::Catalog::Selector

Public Class Methods

new(hash) click to toggle source
# File lib/natives/catalog/selector.rb, line 6
def initialize(hash)
  @values = normalize(hash)
end

Public Instance Methods

values_for(package_provider, platform, platform_version) click to toggle source
# 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 = if @values.key?(package_provider) &&
             @values[package_provider].key?(platform) &&
             @values[package_provider][platform].key?(platform_version)

             @values[package_provider][platform][platform_version]

           elsif @values.key?(package_provider) &&
             @values[package_provider].key?(platform) &&
             @values[package_provider][platform].key?('default')

             @values[package_provider][platform]['default']

           elsif @values.key?(package_provider) &&
             @values[package_provider].key?('default')

             @values[package_provider]['default']
           end

  Array(values)
end

Private Instance Methods

normalize(hash) click to toggle source
# File lib/natives/catalog/selector.rb, line 38
def normalize(hash)
  Normalizer.new.normalize(hash)
end