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