Sha256: 3d0e66a9944d599967daa1ff0f6f42d607cca897ed71053cd5da400c7df4554e

Contents?: true

Size: 1.13 KB

Versions: 5

Compression:

Stored size: 1.13 KB

Contents

require 'time'

module RTurk
  class Assignment
    attr_reader :id, :source

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

    def bonus_payments
      RTurk::GetBonusPayments(:assignment_id => id).payments
    end

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

    def approve_rejected!(feedback = nil)
      RTurk::ApproveRejectedAssignment(: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.10.3 lib/rturk/adapters/assignment.rb
rturk-2.10.2 lib/rturk/adapters/assignment.rb
rturk-2.10.1 lib/rturk/adapters/assignment.rb
rturk-2.10.0 lib/rturk/adapters/assignment.rb
rturk-2.9.0 lib/rturk/adapters/assignment.rb