Sha256: 626802eff3c3805ce056e7d09fcfe9a80ae9f42cd44398db7e67156f19b39eb5

Contents?: true

Size: 514 Bytes

Versions: 9

Compression:

Stored size: 514 Bytes

Contents

module Pageflow
  class PageTypes
    include Enumerable

    def initialize
      @page_types = []
      @page_types_by_name = {}
    end

    def register(page_type)
      @page_types << page_type
      @page_types_by_name[page_type.name] = page_type
    end

    def find_by_name!(name)
      @page_types_by_name.fetch(name) do
        raise "Unknown page type with name #{name}."
      end
    end

    def names
      map(&:name)
    end

    def each(&block)
      @page_types.each(&block)
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
pageflow-0.11.4 lib/pageflow/page_types.rb
pageflow-0.11.3 lib/pageflow/page_types.rb
pageflow-0.11.2 lib/pageflow/page_types.rb
pageflow-0.11.1 lib/pageflow/page_types.rb
pageflow-0.11.0 lib/pageflow/page_types.rb
pageflow-0.10.0 lib/pageflow/page_types.rb
pageflow-0.9.2 lib/pageflow/page_types.rb
pageflow-0.9.1 lib/pageflow/page_types.rb
pageflow-0.9.0 lib/pageflow/page_types.rb