Sha256: da7820285950e59997add1e8be40085ab1d36c321f87001d3bb70bf93f7620a3

Contents?: true

Size: 938 Bytes

Versions: 4

Compression:

Stored size: 938 Bytes

Contents

module Spigot
  module Map
    class Base
      attr_reader :services

      def initialize
        @services = []
        Spigot.config.map = self
      end

      def define(&block)
        Spigot::Map::Service.class_eval(&block) if block_given?
      end

      def update(name, service)
        @services.reject! { |s| s.name == name.to_s.underscore.to_sym }
        @services << service
      end

      def reset
        @services = []
      end

      def service(name)
        services.find { |service| service.name == name.to_s.underscore.to_sym }
      end

      def to_hash
        hash = {}
        services.each do |service|
          service_map = {}
          service.resources.each { |resource| service_map.merge!(resource.to_hash) }
          hash.merge!(service.name.to_sym => service_map)
        end
        hash
      end

      def inspect
        "#<Spigot::Map::Base #{to_hash.to_s}>"
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
spigot-0.3.3 lib/spigot/map/base.rb
spigot-0.3.2 lib/spigot/map/base.rb
spigot-0.3.1 lib/spigot/map/base.rb
spigot-0.3.0 lib/spigot/map/base.rb