Sha256: 09ea0704d40f34f744cbd53f85dfb7ab4a6d40fbd17683cb532af19084beed6f

Contents?: true

Size: 915 Bytes

Versions: 4

Compression:

Stored size: 915 Bytes

Contents

require_relative 'subscriber'

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

      attr_reader :courses_menu, :chapters_menu, :units_menu, :task_view

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

        subscribe_events
        courses_menu.enter
      end

      private

      def subscribe_events
        subscriber = Subscriber.new(
          courses_menu:  courses_menu,
          chapters_menu: chapters_menu,
          units_menu:    units_menu,
          task_view:     task_view
        )

        subscriber.subscribe_events!
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
daigaku-1.0.0 lib/daigaku/views/main_menu.rb
daigaku-0.6.0 lib/daigaku/views/main_menu.rb
daigaku-0.5.0 lib/daigaku/views/main_menu.rb
daigaku-0.4.0 lib/daigaku/views/main_menu.rb