Sha256: c155df096de2d70c7ef499678648d5220e96d8b384cb1d6c098b70c53c0f2b54

Contents?: true

Size: 854 Bytes

Versions: 1

Compression:

Stored size: 854 Bytes

Contents

 module Spigot
  module Map
    class Service

      attr_reader :name
      attr_accessor :resources

      def initialize(name)
        @name = name.to_s.underscore.to_sym
        @resources = []
      end

      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

      def self.find(name)
        current_map.service(name)
      end

      def resource(name, &block)
        resources << Spigot::Map::Resource.new(name, &block)
      end

      def reset
        @resources = []
      end

      def [](name)
        resources.detect{|r| r.instance_variable_get(:@name).to_sym == name.to_sym}
      end

      private

      def self.current_map
        Spigot.config.map
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
spigot-0.2.0 lib/spigot/map/service.rb