class Spigot::Map::Service

Attributes

name[R]
resources[RW]

Public Class Methods

extract(params) click to toggle source
# File lib/spigot/map/service.rb, line 38
def self.extract(params)
  return params if current_map.nil?
  return [nil, params] if params.is_a?(Array)

  name    = params.keys.first
  service = current_map.service(name)

  if service.nil?
    return [nil, params]
  else
    return [service.name.to_sym, params[name]]
  end
end
find(name) click to toggle source
# File lib/spigot/map/service.rb, line 22
def self.find(name)
  current_map.service(name)
end
new(name) click to toggle source
# File lib/spigot/map/service.rb, line 7
def initialize(name)
  @name = name.to_s.underscore.to_sym
  @resources = []
end
resource(name, &block) click to toggle source
# File lib/spigot/map/service.rb, line 18
def self.resource(name, &block)
  service(:any) { resource(name, &block) }
end
service(name, &block) click to toggle source
# File lib/spigot/map/service.rb, line 12
def self.service(name, &block)
  service = find(name) || Spigot::Map::Service.new(name)
  service.instance_eval(&block) if block_given?
  current_map.update(name, service)
end

Private Class Methods

current_map() click to toggle source
# File lib/spigot/map/service.rb, line 54
def self.current_map
  Spigot.config.map
end

Public Instance Methods

[](name) click to toggle source
# File lib/spigot/map/service.rb, line 34
def [](name)
  resources.find { |r| r.instance_variable_get(:@name).to_sym == name.to_sym }
end
reset() click to toggle source
# File lib/spigot/map/service.rb, line 30
def reset
  @resources = []
end
resource(name, &block) click to toggle source
# File lib/spigot/map/service.rb, line 26
def resource(name, &block)
  resources << Spigot::Map::Resource.new(name, &block)
end