Sha256: 539c698bf88cc8d74c11224768dd10ab6657c6d6d10b0d5fa0c0316b40dae879

Contents?: true

Size: 746 Bytes

Versions: 2

Compression:

Stored size: 746 Bytes

Contents

require "conference_tracker/event"
require "conference_tracker/session"

module ConferenceTracker
  class Track
    attr_accessor :name
    attr_reader :morning, :afternoon

    def initialize(morning = Session.morning, afternoon = Session.afternoon, event = Event)
      @morning = morning
      @afternoon = afternoon
      @event = event
    end

    def add(talk)
      @morning.add(talk) || @afternoon.add(talk)
      self
    end

    def empty?
      @morning.empty?
    end

    def schedule
      [].tap do |s|
        s << @name
        s.concat(@morning.schedule)
        s << @event.lunch.to_s
        s.concat(@afternoon.schedule)
        s << @event.networking.update(@afternoon.next_start).to_s
      end.compact
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
conference_tracker-1.1.1 lib/conference_tracker/track.rb
conference_tracker-1.1.0 lib/conference_tracker/track.rb