Sha256: bfb5ab7e0047390e2e14287e11de19505fc2b84566754cba81b202c50c8105e3

Contents?: true

Size: 703 Bytes

Versions: 1

Compression:

Stored size: 703 Bytes

Contents

require 'hyper_admin/resource'
require 'hyper_admin/dsl'

module HyperAdmin
  class ResourceCollection
    attr_reader :resources

    def initialize
      @resources = {}
    end

    def add(resource_class, &block)
      config = config_from_registration_block(resource_class, &block)

      resource = Resource.new(resource_class, config)
      @resources[resource_class.model_name] = resource

      resource
    end

    def each(&block)
      @resources.values.each(&block)
    end

    private

    def config_from_registration_block(resource_class, &block)
      return unless block_given?

      parser = HyperAdmin::DSL::Parser.new(resource_class)
      parser.parse(&block)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hyper_admin-0.4.0 lib/hyper_admin/resource_collection.rb