class PublicIp::Service::Registry
Attributes
service_database[R]
Public Class Methods
[](service)
click to toggle source
# File lib/public_ip/service/registry.rb, line 15 def self.[](service) instance[service] end
available_services()
click to toggle source
# File lib/public_ip/service/registry.rb, line 23 def self.available_services instance.available_services end
new()
click to toggle source
# File lib/public_ip/service/registry.rb, line 47 def initialize @service_database = {} end
random_service()
click to toggle source
# File lib/public_ip/service/registry.rb, line 19 def self.random_service instance.random_service end
register_service(service_class)
click to toggle source
# File lib/public_ip/service/registry.rb, line 10 def self.register_service(service_class) return if instance.service_database.key?(service_class.symbol) instance.service_database[service_class.symbol] = service_class end
Public Instance Methods
[](service)
click to toggle source
# File lib/public_ip/service/registry.rb, line 27 def [](service) require "public_ip/service/#{service}" service_database[service] rescue LoadError raise PublicIp::UnknownService, "Service #{service} is not a valid service" end
available_services()
click to toggle source
# File lib/public_ip/service/registry.rb, line 40 def available_services register_all_services service_database end
random_service()
click to toggle source
# File lib/public_ip/service/registry.rb, line 34 def random_service register_all_services service_database.values.sample end
Private Instance Methods
register_all_services()
click to toggle source
# File lib/public_ip/service/registry.rb, line 51 def register_all_services path = File.join(File.dirname(__FILE__), '*.rb') Dir[path].each { |file| require file } end