rturk 2.3.3 → 2.3.4
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.markdown +3 -0
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/rturk/adapters/assignment.rb +4 -0
- data/lib/rturk/adapters/hit.rb +4 -3
- data/lib/rturk/operations/get_bonus_payments.rb +26 -0
- data/lib/rturk/parsers/bonus_payment_parser.rb +16 -0
- data/lib/rturk/parsers/hit_parser.rb +0 -2
- data/lib/rturk/parsers/responses/get_bonus_payments_response.rb +9 -0
- data/rturk.gemspec +9 -2
- data/spec/adapters/assignment_spec.rb +13 -0
- data/spec/adapters/hit_spec.rb +10 -0
- data/spec/fake_responses/get_bonus_payments.xml +2 -0
- data/spec/operations/get_assignments_spec.rb +1 -6
- data/spec/operations/get_bonus_payments_spec.rb +35 -0
- data/spec/spec_helper.rb +3 -3
- metadata +11 -4
data/CHANGELOG.markdown
ADDED
data/Rakefile
CHANGED
@@ -22,7 +22,7 @@ begin
|
|
22
22
|
gem.add_dependency('nokogiri', '>= 1.4.1')
|
23
23
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
24
24
|
end
|
25
|
-
|
25
|
+
Jeweler::GemcutterTasks.new
|
26
26
|
rescue LoadError
|
27
27
|
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
28
28
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.3.
|
1
|
+
2.3.4
|
data/lib/rturk/adapters/hit.rb
CHANGED
@@ -81,6 +81,10 @@ module RTurk
|
|
81
81
|
RTurk::ForceExpireHIT(:hit_id => self.id)
|
82
82
|
end
|
83
83
|
|
84
|
+
def bonus_payments
|
85
|
+
RTurk::GetBonusPayments(:hit_id => id).payments
|
86
|
+
end
|
87
|
+
|
84
88
|
def dispose!
|
85
89
|
RTurk::DisposeHIT(:hit_id => self.id)
|
86
90
|
end
|
@@ -105,8 +109,5 @@ module RTurk
|
|
105
109
|
self.details.send(method)
|
106
110
|
end
|
107
111
|
end
|
108
|
-
|
109
|
-
|
110
112
|
end
|
111
|
-
|
112
113
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module RTurk
|
2
|
+
class GetBonusPayments < Operation
|
3
|
+
attr_accessor :hit_id, :assignment_id, :page_size,
|
4
|
+
:page_number
|
5
|
+
|
6
|
+
def parse(xml)
|
7
|
+
GetBonusPaymentsResponse.new(xml)
|
8
|
+
end
|
9
|
+
|
10
|
+
def to_params
|
11
|
+
params = {
|
12
|
+
'PageSize' => (page_size || 100),
|
13
|
+
'PageNumber' => (page_number || 1)
|
14
|
+
}
|
15
|
+
|
16
|
+
params['HITId'] = hit_id if hit_id
|
17
|
+
params['AssignmentId'] = assignment_id if assignment_id
|
18
|
+
|
19
|
+
params
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.GetBonusPayments(*args, &block)
|
24
|
+
RTurk::GetBonusPayments.create(*args, &block)
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module RTurk
|
2
|
+
class BonusPaymentParser < RTurk::Parser
|
3
|
+
attr_reader :assignment_id, :bonus_amount, :currency_code,
|
4
|
+
:reason, :grant_time
|
5
|
+
|
6
|
+
def initialize(payment_xml)
|
7
|
+
@xml_obj = payment_xml
|
8
|
+
map_content(@xml_obj,
|
9
|
+
:assignment_id => 'AssignmentId',
|
10
|
+
:bonus_amount => 'BonusAmount/Amount',
|
11
|
+
:currency_code => 'BonusAmount/CurrencyCode',
|
12
|
+
:reason => 'Reason',
|
13
|
+
:grant_time => 'GrantTime')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/rturk.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rturk}
|
8
|
-
s.version = "2.3.
|
8
|
+
s.version = "2.3.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Mark Percival"]
|
12
|
-
s.date = %q{2010-11-
|
12
|
+
s.date = %q{2010-11-18}
|
13
13
|
s.email = %q{mark@mpercival.com}
|
14
14
|
s.extra_rdoc_files = [
|
15
15
|
"LICENSE",
|
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
".gitignore",
|
20
20
|
".gitmodules",
|
21
21
|
".yardoc",
|
22
|
+
"CHANGELOG.markdown",
|
22
23
|
"Gemfile",
|
23
24
|
"LICENSE",
|
24
25
|
"README.markdown",
|
@@ -141,6 +142,7 @@ Gem::Specification.new do |s|
|
|
141
142
|
"lib/rturk/operations/force_expire_hit.rb",
|
142
143
|
"lib/rturk/operations/get_account_balance.rb",
|
143
144
|
"lib/rturk/operations/get_assignments_for_hit.rb",
|
145
|
+
"lib/rturk/operations/get_bonus_payments.rb",
|
144
146
|
"lib/rturk/operations/get_hit.rb",
|
145
147
|
"lib/rturk/operations/get_qualification_type.rb",
|
146
148
|
"lib/rturk/operations/get_qualifications_for_qualification_type.rb",
|
@@ -158,12 +160,14 @@ Gem::Specification.new do |s|
|
|
158
160
|
"lib/rturk/parser.rb",
|
159
161
|
"lib/rturk/parsers/answer_parser.rb",
|
160
162
|
"lib/rturk/parsers/assignment_parser.rb",
|
163
|
+
"lib/rturk/parsers/bonus_payment_parser.rb",
|
161
164
|
"lib/rturk/parsers/hit_parser.rb",
|
162
165
|
"lib/rturk/parsers/qualification_parser.rb",
|
163
166
|
"lib/rturk/parsers/response.rb",
|
164
167
|
"lib/rturk/parsers/responses/create_hit_response.rb",
|
165
168
|
"lib/rturk/parsers/responses/get_account_balance_response.rb",
|
166
169
|
"lib/rturk/parsers/responses/get_assignments_for_hit_response.rb",
|
170
|
+
"lib/rturk/parsers/responses/get_bonus_payments_response.rb",
|
167
171
|
"lib/rturk/parsers/responses/get_hit_response.rb",
|
168
172
|
"lib/rturk/parsers/responses/get_qualification_type_response.rb",
|
169
173
|
"lib/rturk/parsers/responses/get_qualifications_for_qualification_type_response.rb",
|
@@ -193,6 +197,7 @@ Gem::Specification.new do |s|
|
|
193
197
|
"spec/fake_responses/get_account_balance.xml",
|
194
198
|
"spec/fake_responses/get_assignments.xml",
|
195
199
|
"spec/fake_responses/get_assignments_multiple.xml",
|
200
|
+
"spec/fake_responses/get_bonus_payments.xml",
|
196
201
|
"spec/fake_responses/get_hit.xml",
|
197
202
|
"spec/fake_responses/get_qualification_type.xml",
|
198
203
|
"spec/fake_responses/get_qualifications_for_qualification_type.xml",
|
@@ -219,6 +224,7 @@ Gem::Specification.new do |s|
|
|
219
224
|
"spec/operations/force_expire_hit_spec.rb",
|
220
225
|
"spec/operations/get_account_balance_spec.rb",
|
221
226
|
"spec/operations/get_assignments_spec.rb",
|
227
|
+
"spec/operations/get_bonus_payments_spec.rb",
|
222
228
|
"spec/operations/get_hit_spec.rb",
|
223
229
|
"spec/operations/get_qualification_type_spec.rb",
|
224
230
|
"spec/operations/get_qualifications_for_qualification_type_spec.rb",
|
@@ -265,6 +271,7 @@ Gem::Specification.new do |s|
|
|
265
271
|
"spec/operations/force_expire_hit_spec.rb",
|
266
272
|
"spec/operations/get_account_balance_spec.rb",
|
267
273
|
"spec/operations/get_assignments_spec.rb",
|
274
|
+
"spec/operations/get_bonus_payments_spec.rb",
|
268
275
|
"spec/operations/get_hit_spec.rb",
|
269
276
|
"spec/operations/get_qualification_type_spec.rb",
|
270
277
|
"spec/operations/get_qualifications_for_qualification_type_spec.rb",
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
|
2
|
+
|
3
|
+
describe RTurk::Assignment do
|
4
|
+
describe "#bonus_payments" do
|
5
|
+
it "should call GetBonusPayments with the assignment_id" do
|
6
|
+
result = mock('result', :payments => [1, 2, 3])
|
7
|
+
hit = RTurk::Assignment.new(123456)
|
8
|
+
RTurk.should_receive(:GetBonusPayments).
|
9
|
+
with(:assignment_id => 123456).and_return(result)
|
10
|
+
hit.bonus_payments.should == result.payments
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/spec/adapters/hit_spec.rb
CHANGED
@@ -18,6 +18,16 @@ describe "HIT adapter" do
|
|
18
18
|
it "should let us create a hit" do
|
19
19
|
RTurk::Hit.create(:title => 'foo', :description => 'do foo', :question => 'http://mpercival.com', :reward => 0.05)
|
20
20
|
end
|
21
|
+
|
22
|
+
describe "#bonus_payments" do
|
23
|
+
it "should call GetBonusPayments with the hit_id" do
|
24
|
+
result = mock('result', :payments => [1, 2, 3])
|
25
|
+
hit = RTurk::Hit.new(12345)
|
26
|
+
RTurk.should_receive(:GetBonusPayments).
|
27
|
+
with(:hit_id => 12345).and_return(result)
|
28
|
+
hit.bonus_payments.should == result.payments
|
29
|
+
end
|
30
|
+
end
|
21
31
|
|
22
32
|
it "should retrieve all the details of a HIT with find" do
|
23
33
|
proxy_hit = RTurk::Hit.new(12345)
|
@@ -0,0 +1,2 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<GetBonusPaymentsResponse><OperationRequest><RequestId>2851062f-f1a1-46b4-9aa0-268906aef381</RequestId></OperationRequest><GetBonusPaymentsResult><Request><IsValid>True</IsValid></Request><NumResults>3</NumResults><TotalNumResults>3</TotalNumResults><PageNumber>1</PageNumber><BonusPayment><WorkerId>AGDRU4D1VTQLB</WorkerId><BonusAmount><Amount>0.04</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$0.04</FormattedPrice></BonusAmount><AssignmentId>180E4LY5TVT3R8QIIGL8GNEZWCF0UF</AssignmentId><Reason>Congrats! You earned a $0.04 bonus!</Reason><GrantTime>2010-09-17T20:16:40Z</GrantTime></BonusPayment><BonusPayment><WorkerId>A2UMLFMF60AX21</WorkerId><BonusAmount><Amount>0.04</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$0.04</FormattedPrice></BonusAmount><AssignmentId>199HR1YM20ZMAFPXZF8OCEGRF8BHQT</AssignmentId><Reason>Congrats! You earned a $0.04 bonus!</Reason><GrantTime>2010-09-17T20:16:41Z</GrantTime></BonusPayment><BonusPayment><WorkerId>A3FUPDYEZ3Z67F</WorkerId><BonusAmount><Amount>0.04</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$0.04</FormattedPrice></BonusAmount><AssignmentId>10NJ8OOK1GQKTFA5UU0RQDWISW81GL</AssignmentId><Reason>Congrats! You earned a $0.04 bonus!</Reason><GrantTime>2010-09-17T20:16:41Z</GrantTime></BonusPayment></GetBonusPaymentsResult></GetBonusPaymentsResponse>
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
|
2
2
|
|
3
3
|
describe RTurk::GetAssignmentsForHIT do
|
4
|
-
|
5
4
|
before(:all) do
|
6
5
|
aws = YAML.load(File.open(File.join(SPEC_ROOT, 'mturk.yml')))
|
7
6
|
RTurk.setup(aws['AWSAccessKeyId'], aws['AWSAccessKey'], :sandbox => true)
|
@@ -18,7 +17,6 @@ describe RTurk::GetAssignmentsForHIT do
|
|
18
17
|
end
|
19
18
|
|
20
19
|
context "an HIT with one assignment" do
|
21
|
-
|
22
20
|
before(:all) do
|
23
21
|
FakeWeb.clean_registry
|
24
22
|
faker('get_assignments', :operation => 'GetAssignmentsForHIT')
|
@@ -28,9 +26,8 @@ describe RTurk::GetAssignmentsForHIT do
|
|
28
26
|
assignments = RTurk::GetAssignmentsForHIT(:hit_id => "abcd").assignments
|
29
27
|
assignments.first.answers['tweet'].should eql("This is my tweet!")
|
30
28
|
end
|
31
|
-
|
32
29
|
end
|
33
|
-
|
30
|
+
|
34
31
|
context "an HIT with multiple assignment" do
|
35
32
|
|
36
33
|
before(:all) do
|
@@ -42,7 +39,5 @@ describe RTurk::GetAssignmentsForHIT do
|
|
42
39
|
assignments = RTurk::GetAssignmentsForHIT(:hit_id => "abcd").assignments
|
43
40
|
assignments.first.answers['tweet'].should eql("This is my tweet!")
|
44
41
|
end
|
45
|
-
|
46
42
|
end
|
47
|
-
|
48
43
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
|
2
|
+
|
3
|
+
describe RTurk::GetBonusPayments do
|
4
|
+
before(:all) do
|
5
|
+
aws = YAML.load(File.open(File.join(SPEC_ROOT, 'mturk.yml')))
|
6
|
+
RTurk.setup(aws['AWSAccessKeyId'], aws['AWSAccessKey'], :sandbox => true)
|
7
|
+
end
|
8
|
+
|
9
|
+
context "a HIT with multiple payments" do
|
10
|
+
before(:all) do
|
11
|
+
FakeWeb.clean_registry
|
12
|
+
faker('get_bonus_payments', :operation => 'GetBonusPayments')
|
13
|
+
|
14
|
+
@response = RTurk::GetBonusPayments(:hit_id => 'fdsa')
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should return 3 payments" do
|
18
|
+
@response.payments.should have(3).things
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should parse each payment correctly" do
|
22
|
+
payment = @response.payments.first
|
23
|
+
payment.bonus_amount.should == 0.04
|
24
|
+
payment.currency_code.should == 'USD'
|
25
|
+
payment.assignment_id.should == '180E4LY5TVT3R8QIIGL8GNEZWCF0UF'
|
26
|
+
payment.reason.should == "Congrats! You earned a $0.04 bonus!"
|
27
|
+
payment.grant_time.should < Time.now
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should have unique assignment IDs" do
|
31
|
+
ids = @response.payments.collect { |p| p.assignment_id }.uniq
|
32
|
+
ids.should have(3).things
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -5,13 +5,13 @@ require 'rubygems'
|
|
5
5
|
require 'spec'
|
6
6
|
require 'fakeweb'
|
7
7
|
require 'yaml'
|
8
|
+
|
8
9
|
module FakeWeb
|
9
10
|
class Registry
|
10
11
|
# Comment out this override if you're using a quantum computer
|
11
12
|
def variations_of_uri_as_strings(uri)
|
12
13
|
[uri.to_s]
|
13
|
-
end
|
14
|
-
|
14
|
+
end
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
@@ -37,4 +37,4 @@ end
|
|
37
37
|
|
38
38
|
Spec::Runner.configure do |config|
|
39
39
|
|
40
|
-
end
|
40
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rturk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 11
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 2.3.
|
9
|
+
- 4
|
10
|
+
version: 2.3.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Mark Percival
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-11-
|
18
|
+
date: 2010-11-18 00:00:00 -08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -63,6 +63,7 @@ files:
|
|
63
63
|
- .gitignore
|
64
64
|
- .gitmodules
|
65
65
|
- .yardoc
|
66
|
+
- CHANGELOG.markdown
|
66
67
|
- Gemfile
|
67
68
|
- LICENSE
|
68
69
|
- README.markdown
|
@@ -185,6 +186,7 @@ files:
|
|
185
186
|
- lib/rturk/operations/force_expire_hit.rb
|
186
187
|
- lib/rturk/operations/get_account_balance.rb
|
187
188
|
- lib/rturk/operations/get_assignments_for_hit.rb
|
189
|
+
- lib/rturk/operations/get_bonus_payments.rb
|
188
190
|
- lib/rturk/operations/get_hit.rb
|
189
191
|
- lib/rturk/operations/get_qualification_type.rb
|
190
192
|
- lib/rturk/operations/get_qualifications_for_qualification_type.rb
|
@@ -202,12 +204,14 @@ files:
|
|
202
204
|
- lib/rturk/parser.rb
|
203
205
|
- lib/rturk/parsers/answer_parser.rb
|
204
206
|
- lib/rturk/parsers/assignment_parser.rb
|
207
|
+
- lib/rturk/parsers/bonus_payment_parser.rb
|
205
208
|
- lib/rturk/parsers/hit_parser.rb
|
206
209
|
- lib/rturk/parsers/qualification_parser.rb
|
207
210
|
- lib/rturk/parsers/response.rb
|
208
211
|
- lib/rturk/parsers/responses/create_hit_response.rb
|
209
212
|
- lib/rturk/parsers/responses/get_account_balance_response.rb
|
210
213
|
- lib/rturk/parsers/responses/get_assignments_for_hit_response.rb
|
214
|
+
- lib/rturk/parsers/responses/get_bonus_payments_response.rb
|
211
215
|
- lib/rturk/parsers/responses/get_hit_response.rb
|
212
216
|
- lib/rturk/parsers/responses/get_qualification_type_response.rb
|
213
217
|
- lib/rturk/parsers/responses/get_qualifications_for_qualification_type_response.rb
|
@@ -237,6 +241,7 @@ files:
|
|
237
241
|
- spec/fake_responses/get_account_balance.xml
|
238
242
|
- spec/fake_responses/get_assignments.xml
|
239
243
|
- spec/fake_responses/get_assignments_multiple.xml
|
244
|
+
- spec/fake_responses/get_bonus_payments.xml
|
240
245
|
- spec/fake_responses/get_hit.xml
|
241
246
|
- spec/fake_responses/get_qualification_type.xml
|
242
247
|
- spec/fake_responses/get_qualifications_for_qualification_type.xml
|
@@ -263,6 +268,7 @@ files:
|
|
263
268
|
- spec/operations/force_expire_hit_spec.rb
|
264
269
|
- spec/operations/get_account_balance_spec.rb
|
265
270
|
- spec/operations/get_assignments_spec.rb
|
271
|
+
- spec/operations/get_bonus_payments_spec.rb
|
266
272
|
- spec/operations/get_hit_spec.rb
|
267
273
|
- spec/operations/get_qualification_type_spec.rb
|
268
274
|
- spec/operations/get_qualifications_for_qualification_type_spec.rb
|
@@ -337,6 +343,7 @@ test_files:
|
|
337
343
|
- spec/operations/force_expire_hit_spec.rb
|
338
344
|
- spec/operations/get_account_balance_spec.rb
|
339
345
|
- spec/operations/get_assignments_spec.rb
|
346
|
+
- spec/operations/get_bonus_payments_spec.rb
|
340
347
|
- spec/operations/get_hit_spec.rb
|
341
348
|
- spec/operations/get_qualification_type_spec.rb
|
342
349
|
- spec/operations/get_qualifications_for_qualification_type_spec.rb
|