lib/rturk/adapters/assignment.rb in rturk-2.0.2 vs lib/rturk/adapters/assignment.rb in rturk-2.0.3

- old
+ new

@@ -1,73 +1,36 @@ require 'time' module RTurk - # Parses: - # <Assignment> - # <AssignmentId>GYFTRHZ5J3DZREY48WNZE38ZR9RR1ZPMXGWE7WE0</AssignmentId> - # <WorkerId>AD20WXZZP9XXK</WorkerId> - # <HITId>GYFTRHZ5J3DZREY48WNZ</HITId> - # <AssignmentStatus>Approved</AssignmentStatus> - # <AutoApprovalTime>2009-08-12T19:21:54Z</AutoApprovalTime> - # <AcceptTime>2009-07-13T19:21:40Z</AcceptTime> - # <SubmitTime>2009-07-13T19:21:54Z</SubmitTime> - # <ApprovalTime>2009-07-13T19:27:54Z</ApprovalTime> - # <Answer> - # <?xml version="1.0" encoding="UTF-8"?> - # <QuestionFormAnswers xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2005-10-01/QuestionFormAnswers.xsd"> - # <Answer> - # <QuestionIdentifier>Question100</QuestionIdentifier> - # <FreeText>Move to X.</FreeText> - # </Answer> - # </QuestionFormAnswers> - # </Answer> - # </Assignment> - class Assignment - include RTurk::XmlUtilities - attr_accessor :worker_id, :id, :status, :submitted_at, :accepted_at, :approved_at - attr_reader :answers + attr_reader :id, :source - def initialize(xml_object) - map_content(xml_object, - :id => 'AssignmentId', - :worker_id => 'WorkerId', - :status => 'AssignmentStatus', - :accepted_at => 'AcceptTime', - :approved_at => "ApprovalTime", - :submitted_at => 'SubmitTime') - self.answers = xml_object.xpath('Answer') + def initialize(id, source = nil) + @id, @source = id, source end - def approved_at=(time) - @approved_at = Time.parse(time) - end - - def submitted_at=(time) - @submitted_at = Time.parse(time) - end - - def accepted_at=(time) - @accepted_at = Time.parse(time) - end - def approve!(feedback = nil) RTurk::ApproveAssignment(:assignment_id => self.id, :feedback => feedback) end def reject!(reason) RTurk::ApproveAssignment(:assignment_id => self.id, :feedback => reason) end def bonus!(amount, reason) - RTurk::GrantBonus(:amount, :feedback => reason) + RTurk::GrantBonus(:assignment_id => self.id, :worker_id => self.worker_id, :amount => amount, :feedback => reason) end - - def answers=(answer_xml) - @answers = RTurk::Answers.new(answer_xml.children.to_s) + + def worker + RTurk::Worker.new(self.worker_id) end - + + def method_missing(method, *args) + if self.source.respond_to?(method) + self.source.send(method, *args) + end + end end end