Sha256: e65dd22cd2770eed3c0c9124fbcc175a7f8b3ca93940a52cfb472ea79afa22be

Contents?: true

Size: 980 Bytes

Versions: 3

Compression:

Stored size: 980 Bytes

Contents

module Lessonly
  class Course < Resource
    has_many :assignments

    def initialize(agent, data = {})
      super(agent, data)

      define_has_many_lessons if @attrs[:lessons]
    end

    def define_has_many_lessons
      self.lessons = @attrs[:lessons].map do |l|
        Lessonly::Lesson.new(agent, l.attrs)
      end
    end

    def create_assignment(users, due_by = 1.year.from_now)
      users = [users] unless users.is_a? Array

      new_assignments = users.map do |user|
        Lessonly::Assignment.new(agent, assignee_id: user.id, due_by: due_by)
      end

      self.assignments = assignments + new_assignments

      client.put "#{href}/assignments",
                 Resource.new(agent, assignments: new_assignments)
    end

    def destroy_assignment(user)
      self.assignments = assignments.select { |a| a.assignee_id != user.id }

      client.put "#{href}/assignments",
                 Resource.new(agent, assignments: assignments)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lessonly-ruby-0.1.3 lib/lessonly/resource/course.rb
lessonly-ruby-0.1.2 lib/lessonly/resource/course.rb
lessonly-ruby-0.1.1 lib/lessonly/resource/course.rb