Sha256: 39d4b1472bc7e83f9ffc8fc69f03a43a5da18d42c3a27d24e6c5d753fb48fb78

Contents?: true

Size: 1.11 KB

Versions: 1

Compression:

Stored size: 1.11 KB

Contents

module Belajar
  module Views

    class MainMenu
      include Views

      def initialize
        courses_menu = Views::CoursesMenu.new
        chapters_menu = Views::ChaptersMenu.new
        units_menu = Views::UnitsMenu.new
        task_view = Views::TaskView.new

        # Subscription: `first.subscribe(second)` means
        # first subscribes second on the first's broadcast.
        # second has to have method that is broadcasted.

        # top down navigation
        courses_menu.subscribe(chapters_menu, on: :enter)
        chapters_menu.subscribe(units_menu, on: :enter)
        units_menu.subscribe(task_view, on: :enter)

        # bottom up navigation
        chapters_menu.subscribe(courses_menu, on: :reenter)
        units_menu.subscribe(chapters_menu, on: :reenter)
        task_view.subscribe(units_menu, on: :reenter)

        # position reset
        courses_menu.subscribe(chapters_menu, on: :reset_menu_position)
        courses_menu.subscribe(units_menu, on: :reset_menu_position)
        chapters_menu.subscribe(units_menu, on: :reset_menu_position)

        courses_menu.enter
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
belajar-0.1.1 lib/belajar/views/main_menu.rb