Module: Scheduler

Defined in:
lib/ruby/scheduler.rb,
lib/ruby/scheduler/meeting.rb,
lib/ruby/scheduler/schedule.rb

Defined Under Namespace

Classes: Meeting, Schedule

Constant Summary collapse

MEETINGS =

This module should execute the project task. Given a schedule, ptimize the meetings, to fit them within a business day. Input:

  • Schedule object

Output:

  • String

{
    example_1: [{
        name: 'Meeting 1',
        duration: 1.5,
        type: :onsite,
    }, {
        name: 'Meeting 2',
        duration: 2,
        type: :offsite
    }, {
        name: 'Meeting 3',
        duration: 1,
        type: :onsite
    }, {
        name: 'Meeting 4',
        duration: 1,
        type: :offsite
    }, {
        name: 'Meeting 5',
        duration: 1,
        type: :offsite
    }],
    example_2: [{
        name: 'Meeting 1',
        duration: 4,
        type: :offsite
    }, {
        name: 'Meeting 2',
        duration: 4,
        type: :offsite
    }],
    example_3: [{
        name: 'Meeting 1',
        duration: 0.5,
        type: :offsite
    }, {
        name: 'Meeting 2',
        duration: 0.5,
        type: :onsite
    }, {
        name: 'Meeting 3',
        duration: 2.5,
        type: :offsite
    }, {
        name: 'Meeting 4',
        duration: 3,
        type: :onsite
    }]
}

Class Method Summary collapse

Class Method Details

.run(meetings = nil) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/ruby/scheduler.rb', line 63

def self.run(meetings = nil)
    puts "Execute file"
    if meetings.nil?
        meetings = MEETINGS[:example_1]
    end
    schedule = Scheduler::Schedule.new({
        meetings: meetings
    })

    schedule.reschedule
    return schedule
end