Class: Depend::Register

Inherits:
Object
  • Object
show all
Defined in:
lib/depend/register.rb

Constant Summary collapse

OPERATION_SYSTEMS =
%w{ Ubuntu mac_os_x }.freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#platformsObject (readonly)

Returns the value of attribute platforms.



7
8
9
# File 'lib/depend/register.rb', line 7

def platforms
  @platforms
end

Class Method Details

.init_with_default_registerObject



9
10
11
12
13
14
# File 'lib/depend/register.rb', line 9

def self.init_with_default_register
  instance = self.new
  instance.register PackageProvider::Apt,      'Ubuntu'
  instance.register PackageProvider::Homebrew, 'mac_os_x'
  instance
end

Instance Method Details

#acceptable_operations_systemsObject



16
17
18
# File 'lib/depend/register.rb', line 16

def acceptable_operations_systems
  OPERATION_SYSTEMS
end

#package_providers_for(platform, platform_version) ⇒ Object



20
21
22
23
24
25
# File 'lib/depend/register.rb', line 20

def package_providers_for(platform, platform_version)
  puts @platforms
  return [] if @platforms.nil? || @platforms.empty?
  _platform = @platforms[platform] || []
  _platform.select{|plat| version_include?(plat.shift, platform_version)}.map(&:last)
end

#register(package_provider, platform, platform_version = nil) ⇒ Object



27
28
29
30
31
32
33
34
35
36
# File 'lib/depend/register.rb', line 27

def register(package_provider, platform, platform_version = nil)
  puts "in register"
  fail PlatformNotSupportedError unless platform_accepted?(platform)
  @platforms ||= {}
  if @platforms[platform]
    @platforms[platform] << [platform_version, package_provider]
  else
    @platforms[platform] = [[platform_version, package_provider]]
  end
end