class FrOData::ServiceRegistry

Provides a registry for keeping track of multiple FrOData::Service instances

Public Class Methods

[](lookup_key) click to toggle source

(see [])

# File lib/frodata/service_registry.rb, line 34
def self.[](lookup_key)
  FrOData::ServiceRegistry.instance[lookup_key]
end
add(service) click to toggle source

(see add)

# File lib/frodata/service_registry.rb, line 29
def self.add(service)
  FrOData::ServiceRegistry.instance.add(service)
end

Public Instance Methods

[](lookup_key) click to toggle source

Lookup a service by URL or name

@param lookup_key [String] the URL or name to lookup @return [FrOData::Service, nil] the FrOData::Service or nil

# File lib/frodata/service_registry.rb, line 22
def [](lookup_key)
  initialize_instance_variables
  index = @services_by_name[lookup_key] || @services_by_url[lookup_key]
  index.nil? ? nil : @services[index]
end
add(service) click to toggle source

Add a service to the Registry

@param service [FrOData::Service] service to add to the registry

# File lib/frodata/service_registry.rb, line 11
def add(service)
  initialize_instance_variables
  @services << service if service.is_a?(FrOData::Service) && !@services.include?(service)
  @services_by_name[service.name] = @services.find_index(service)
  @services_by_url[service.service_url] = @services.find_index(service)
end

Private Instance Methods

flush() click to toggle source
# File lib/frodata/service_registry.rb, line 46
def flush
  @services = []
  @services_by_name = {}
  @services_by_url = {}
end
initialize_instance_variables() click to toggle source
# File lib/frodata/service_registry.rb, line 40
def initialize_instance_variables
  @services ||= []
  @services_by_name ||= {}
  @services_by_url ||= {}
end