Sha256: 4cef9e18d00c33cd3d2f9d72a0ffec4412165373804291ecc3dd7025e6f72b90

Contents?: true

Size: 549 Bytes

Versions: 51

Compression:

Stored size: 549 Bytes

Contents

module Pageflow
  class PageTypes
    include Enumerable

    def initialize
      clear
    end

    def clear
      @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

51 entries across 51 versions & 1 rubygems

Version Path
pageflow-14.5.2 lib/pageflow/page_types.rb
pageflow-14.5.1 lib/pageflow/page_types.rb
pageflow-14.5.0 lib/pageflow/page_types.rb
pageflow-14.4.0 lib/pageflow/page_types.rb
pageflow-15.0.0.beta2 lib/pageflow/page_types.rb
pageflow-15.0.0.beta1 lib/pageflow/page_types.rb
pageflow-14.3.0 lib/pageflow/page_types.rb
pageflow-14.2.1 lib/pageflow/page_types.rb
pageflow-14.2.0 lib/pageflow/page_types.rb
pageflow-14.1.1 lib/pageflow/page_types.rb
pageflow-14.1.0 lib/pageflow/page_types.rb
pageflow-14.0.0 lib/pageflow/page_types.rb
pageflow-14.0.0.rc2 lib/pageflow/page_types.rb
pageflow-14.0.0.rc1 lib/pageflow/page_types.rb
pageflow-14.0.0.beta3 lib/pageflow/page_types.rb
pageflow-14.0.0.beta2 lib/pageflow/page_types.rb
pageflow-14.0.0.beta1 lib/pageflow/page_types.rb
pageflow-13.6.0 lib/pageflow/page_types.rb
pageflow-13.5.0 lib/pageflow/page_types.rb
pageflow-13.4.0 lib/pageflow/page_types.rb