Sha256: 0254bbaad0b6526fbcf610cd892ad49158635d091e4b9fb3a70608eeba5b7ac7

Contents?: true

Size: 782 Bytes

Versions: 14

Compression:

Stored size: 782 Bytes

Contents

module Endeca
  
  class Breadcrumb
    include Readers

    def self.create(raw)
      name = raw['Type']
      breadcrumb_class = self

      if name    
        unless Breadcrumbs.include?(name)
          raise Breadcrumbs::TypeError, "Unknown breadcrumb type: #{name.inspect}" 
        end
        breadcrumb_class = Breadcrumbs[name]
      end

      breadcrumb_class.new(raw)
    end
    
    def self.to_proc
      proc(&method(:create))
    end

    attr_reader :raw
    def initialize(raw={})
      @raw = raw
    end
    alias_method :attributes, :raw
    
    reader 'Type' => :type    
    def name; '' end

    def ==(other)
      name == other.name
    end

    def inspect
      "#<#{self.class}=0x#{self.object_id.to_s(16)} name=#{name.inspect}>"
    end

  end
end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
primedia-endeca-0.14.0 lib/endeca/breadcrumb.rb
primedia-endeca-1.0.0 lib/endeca/breadcrumb.rb
primedia-endeca-1.1.0 lib/endeca/breadcrumb.rb
primedia-endeca-1.2.0 lib/endeca/breadcrumb.rb
primedia-endeca-1.3.0 lib/endeca/breadcrumb.rb
primedia-endeca-1.3.1 lib/endeca/breadcrumb.rb
primedia-endeca-1.3.2 lib/endeca/breadcrumb.rb
primedia-endeca-1.3.3 lib/endeca/breadcrumb.rb
primedia-endeca-1.3.4 lib/endeca/breadcrumb.rb
primedia-endeca-1.3.5 lib/endeca/breadcrumb.rb
primedia-endeca-1.3.6 lib/endeca/breadcrumb.rb
primedia-endeca-1.3.7 lib/endeca/breadcrumb.rb
endeca-1.3.8 lib/endeca/breadcrumb.rb
endeca-1.3.7 lib/endeca/breadcrumb.rb