Sha256: fb0a6efade51a2473a6182f2d8a460cdb0c359d596addbb188c5c235a5a43330

Contents?: true

Size: 926 Bytes

Versions: 5

Compression:

Stored size: 926 Bytes

Contents

require 'time'

module RTurk
  class Assignment
    attr_reader :id, :source

    def initialize(id, source = nil)
      @id, @source = id, source
    end

    def approve!(feedback = nil)
      RTurk::ApproveAssignment(:assignment_id => self.id, :feedback => feedback)
    end

    def reject!(reason)
      RTurk::RejectAssignment(:assignment_id => self.id, :feedback => reason)
    end

    def bonus!(amount, reason)
      RTurk::GrantBonus(:assignment_id => self.id, :worker_id => self.worker_id, :amount => amount, :feedback => reason)
    end

    def worker
      RTurk::Worker.new(self.worker_id)
    end

    def submitted?
      status == 'Submitted'
    end

    def approved?
      status == 'Approved'
    end

    def rejected?
      status == 'Rejected'
    end

    def method_missing(method, *args)
      if self.source.respond_to?(method)
        self.source.send(method, *args)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rturk-2.3.3 lib/rturk/adapters/assignment.rb
rturk-2.3.2 lib/rturk/adapters/assignment.rb
rturk-2.3.1 lib/rturk/adapters/assignment.rb
rturk-2.3.0 lib/rturk/adapters/assignment.rb
rturk-2.2.1 lib/rturk/adapters/assignment.rb