Sha256: bbccb1810dc5941e473be95af532067ecd915bf2ab6b735db0a3760b111a0ee2

Contents?: true

Size: 1.03 KB

Versions: 8

Compression:

Stored size: 1.03 KB

Contents

module RubyApp

  module Elements

    module Navigation
      require 'ruby_app'
      require 'ruby_app/element'

      class PageLink < RubyApp::Element

        class ClickedEvent < RubyApp::Element::Event

          attr_reader :page

          def initialize(data)
            super(data)
            @page = eval(data['page'])
          end

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

        end

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

        attr_accessor :page

        def initialize(page = nil)
          super()
          @page = page
        end

        def current_page?
          page == RubyApp::Session.pages.last.class
        end

        protected

          def on_event(event)
            on_clicked(event) if event.is_a?(RubyApp::Elements::Navigation::PageLink::ClickedEvent)
            super(event)
          end

          def on_clicked(event)
            RubyApp::Session.pages.push(event.page.new)
            event.refresh
          end

      end

    end

  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
RubyApp-0.2.7 lib/ruby_app/elements/navigation/page_link.rb
RubyApp-0.2.6 lib/ruby_app/elements/navigation/page_link.rb
RubyApp-0.2.5 lib/ruby_app/elements/navigation/page_link.rb
RubyApp-0.2.4 lib/ruby_app/elements/navigation/page_link.rb
RubyApp-0.2.3 lib/ruby_app/elements/navigation/page_link.rb
RubyApp-0.2.2 lib/ruby_app/elements/navigation/page_link.rb
RubyApp-0.2.1 lib/ruby_app/elements/navigation/page_link.rb
RubyApp-0.2.0 lib/ruby_app/elements/navigation/page_link.rb