Sha256: 97a8dd211138634d7e906f0dbb54dd9baba2223ecf84b37325032b36d5f4b9a4

Contents?: true

Size: 1.17 KB

Versions: 3

Compression:

Stored size: 1.17 KB

Contents

require 'rubygems'
require 'bundler/setup'

require 'ruby-event'

module RubyApp

  module Elements

    module Navigation

      module Base
        require 'ruby_app/element'

        class BaseBreadcrumbs < RubyApp::Element

          class NavigatedEvent < RubyApp::Element::Event

            attr_reader :page

            def initialize(data)
              super(data)
              @page = RubyApp::Element.get_element(data['page_id'])
            end

            def to_hash
              super.merge('page_id' => @page.element_id)
            end

          end

          template_path(:all, File.dirname(__FILE__))

          def initialize
            super
          end

          protected

            def on_event(event)
              on_navigated(event) if event.is_a?(RubyApp::Elements::Navigation::Base::BaseBreadcrumbs::NavigatedEvent)
              super(event)
            end

            def on_navigated(event)
              RubyApp::Session.pages.slice!(RubyApp::Session.pages.index(event.page) + 1, RubyApp::Session.pages.length - ( RubyApp::Session.pages.index(event.page) + 1 ))
              event.refresh
            end

        end

      end

    end

  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
RubyApp-0.0.8 lib/ruby_app/elements/navigation/base/base_breadcrumbs.rb
RubyApp-0.0.7 lib/ruby_app/elements/navigation/base/base_breadcrumbs.rb
RubyApp-0.0.6 lib/ruby_app/elements/navigation/base/base_breadcrumbs.rb