mturk 1.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +2 -0
- data/.gemtest +0 -0
- data/History.md +105 -0
- data/LICENSE.txt +202 -0
- data/Manifest.txt +72 -0
- data/NOTICE.txt +4 -0
- data/README.md +100 -0
- data/Rakefile +33 -0
- data/bin/mturk +9 -0
- data/lib/amazon/util.rb +10 -0
- data/lib/amazon/util/binder.rb +48 -0
- data/lib/amazon/util/data_reader.rb +169 -0
- data/lib/amazon/util/filter_chain.rb +79 -0
- data/lib/amazon/util/hash_nesting.rb +93 -0
- data/lib/amazon/util/lazy_results.rb +59 -0
- data/lib/amazon/util/logging.rb +23 -0
- data/lib/amazon/util/paginated_iterator.rb +70 -0
- data/lib/amazon/util/proactive_results.rb +116 -0
- data/lib/amazon/util/threadpool.rb +129 -0
- data/lib/amazon/util/user_data_store.rb +100 -0
- data/lib/amazon/webservices/mechanical_turk.rb +123 -0
- data/lib/amazon/webservices/mechanical_turk_requester.rb +285 -0
- data/lib/amazon/webservices/mturk/mechanical_turk_error_handler.rb +153 -0
- data/lib/amazon/webservices/mturk/question_generator.rb +58 -0
- data/lib/amazon/webservices/util/amazon_authentication_relay.rb +72 -0
- data/lib/amazon/webservices/util/command_line.rb +155 -0
- data/lib/amazon/webservices/util/convenience_wrapper.rb +90 -0
- data/lib/amazon/webservices/util/filter_proxy.rb +45 -0
- data/lib/amazon/webservices/util/mock_transport.rb +70 -0
- data/lib/amazon/webservices/util/request_signer.rb +42 -0
- data/lib/amazon/webservices/util/rest_transport.rb +120 -0
- data/lib/amazon/webservices/util/soap_simplifier.rb +48 -0
- data/lib/amazon/webservices/util/soap_transport.rb +20 -0
- data/lib/amazon/webservices/util/soap_transport_header_handler.rb +27 -0
- data/lib/amazon/webservices/util/unknown_result_exception.rb +27 -0
- data/lib/amazon/webservices/util/validation_exception.rb +55 -0
- data/lib/amazon/webservices/util/xml_simplifier.rb +61 -0
- data/lib/mturk.rb +19 -0
- data/lib/mturk/version.rb +6 -0
- data/run_rcov.sh +1 -0
- data/samples/best_image/BestImage.rb +61 -0
- data/samples/best_image/best_image.properties +39 -0
- data/samples/best_image/best_image.question +82 -0
- data/samples/blank_slate/BlankSlate.rb +63 -0
- data/samples/blank_slate/BlankSlate_multithreaded.rb +67 -0
- data/samples/helloworld/MTurkHelloWorld.rb +56 -0
- data/samples/helloworld/mturk.yml +8 -0
- data/samples/review_policy/ReviewPolicy.rb +139 -0
- data/samples/review_policy/review_policy.question +30 -0
- data/samples/reviewer/Reviewer.rb +103 -0
- data/samples/reviewer/mturk.yml +8 -0
- data/samples/simple_survey/SimpleSurvey.rb +98 -0
- data/samples/simple_survey/simple_survey.question +30 -0
- data/samples/site_category/SiteCategory.rb +87 -0
- data/samples/site_category/externalpage.htm +71 -0
- data/samples/site_category/site_category.input +6 -0
- data/samples/site_category/site_category.properties +56 -0
- data/samples/site_category/site_category.question +9 -0
- data/test/mturk/test_changehittypeofhit.rb +130 -0
- data/test/mturk/test_error_handler.rb +403 -0
- data/test/mturk/test_mechanical_turk_requester.rb +178 -0
- data/test/mturk/test_mock_mechanical_turk_requester.rb +205 -0
- data/test/test_mturk.rb +21 -0
- data/test/unit/test_binder.rb +89 -0
- data/test/unit/test_data_reader.rb +135 -0
- data/test/unit/test_exceptions.rb +32 -0
- data/test/unit/test_hash_nesting.rb +99 -0
- data/test/unit/test_lazy_results.rb +89 -0
- data/test/unit/test_mock_transport.rb +132 -0
- data/test/unit/test_paginated_iterator.rb +58 -0
- data/test/unit/test_proactive_results.rb +108 -0
- data/test/unit/test_question_generator.rb +55 -0
- data/test/unit/test_threadpool.rb +50 -0
- data/test/unit/test_user_data_store.rb +80 -0
- metadata +225 -0
- metadata.gz.sig +0 -0
@@ -0,0 +1,58 @@
|
|
1
|
+
# Copyright:: Copyright (c) 2007 Amazon Technologies, Inc.
|
2
|
+
# License:: Apache License, Version 2.0
|
3
|
+
|
4
|
+
require 'test/unit/testcase'
|
5
|
+
require 'amazon/util/paginated_iterator'
|
6
|
+
|
7
|
+
class TestPaginatedIterator < Test::Unit::TestCase
|
8
|
+
include Amazon::Util
|
9
|
+
|
10
|
+
def setup
|
11
|
+
@call_count = 0
|
12
|
+
@simple_pagesize = 2
|
13
|
+
@simple_data_size = 6
|
14
|
+
@simple_data = [ [1,2],[3,4],[5,6] ]
|
15
|
+
@simple_iter = PaginatedIterator.new {|page| @call_count += 1 ; @simple_data[ page-1 ] }
|
16
|
+
end
|
17
|
+
|
18
|
+
def testNext
|
19
|
+
assert_equal 0, @call_count
|
20
|
+
@simple_data.flatten.each do |i|
|
21
|
+
assert_equal i, @simple_iter.next
|
22
|
+
end
|
23
|
+
assert_equal 3, @call_count
|
24
|
+
assert !@simple_iter.done
|
25
|
+
assert_nil @simple_iter.next
|
26
|
+
assert_equal 4, @call_count
|
27
|
+
assert @simple_iter.done
|
28
|
+
end
|
29
|
+
|
30
|
+
def testRestart
|
31
|
+
assert_equal 0, @call_count
|
32
|
+
@simple_iter.next until @simple_iter.done
|
33
|
+
assert_equal 4, @call_count
|
34
|
+
@simple_iter.restart
|
35
|
+
assert !@simple_iter.done
|
36
|
+
@simple_iter.next until @simple_iter.done
|
37
|
+
assert_equal 8, @call_count
|
38
|
+
end
|
39
|
+
|
40
|
+
def testEach
|
41
|
+
res = []
|
42
|
+
@simple_iter.each {|i| res << i }
|
43
|
+
assert_equal @simple_data.flatten, res
|
44
|
+
assert_equal 4, @call_count
|
45
|
+
assert @simple_iter.done
|
46
|
+
@simple_iter.each {|i| fail }
|
47
|
+
end
|
48
|
+
|
49
|
+
def testError
|
50
|
+
@picky_message = "picky picky picky"
|
51
|
+
@picky_iter = PaginatedIterator.new {|page| @call_count += 1 ; if page < 3 ; @simple_data[ page-1 ] ; else ; raise @picky_message ; end }
|
52
|
+
3.times { @picky_iter.next }
|
53
|
+
assert_equal 4, @picky_iter.next
|
54
|
+
e = assert_raises( RuntimeError ) { @picky_iter.next }
|
55
|
+
assert_equal @picky_message, e.message
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
@@ -0,0 +1,108 @@
|
|
1
|
+
# Copyright:: Copyright (c) 2007 Amazon Technologies, Inc.
|
2
|
+
# License:: Apache License, Version 2.0
|
3
|
+
|
4
|
+
require 'test/unit/testcase'
|
5
|
+
require 'amazon/util/proactive_results'
|
6
|
+
|
7
|
+
class TestProactiveResults < Test::Unit::TestCase
|
8
|
+
include Amazon::Util
|
9
|
+
|
10
|
+
def setup
|
11
|
+
@call_count = 0
|
12
|
+
@exception_count = 0
|
13
|
+
@simple_pagesize = 2
|
14
|
+
@simple_data_size = 6
|
15
|
+
@simple_data = [ [1,2],[3,4],[5,6] ]
|
16
|
+
@simple_proactive = ProactiveResults.new {|page| @call_count += 1 ; @simple_data[ page-1 ] }
|
17
|
+
end
|
18
|
+
|
19
|
+
def testBasic
|
20
|
+
assert @call_count >= 0
|
21
|
+
assert_equal @simple_data.flatten, @simple_proactive.to_a
|
22
|
+
assert_equal 6, @call_count
|
23
|
+
assert_equal @simple_data.flatten, @simple_proactive.to_a
|
24
|
+
assert_equal 6, @call_count
|
25
|
+
assert_equal Array, @simple_proactive.to_a.class
|
26
|
+
end
|
27
|
+
|
28
|
+
def testEnumerable
|
29
|
+
result = @simple_proactive.collect
|
30
|
+
assert_equal @simple_data.flatten, result.to_a
|
31
|
+
assert_equal 6, @call_count
|
32
|
+
result = @simple_proactive.collect
|
33
|
+
assert_equal @simple_data.flatten, result.to_a
|
34
|
+
assert_equal 6, @call_count
|
35
|
+
minus1 = @simple_proactive.collect {|i| i-1}
|
36
|
+
minus1.each_with_index {|i,n| assert_equal i, n }
|
37
|
+
evenodd = @simple_proactive.inject({:even => [],:odd => []}) {|a,num| a[ num % 2 == 0 ? :even : :odd ] << num ; a }
|
38
|
+
expected = {:even => [2,4,6], :odd => [1,3,5] }
|
39
|
+
assert_equal expected, evenodd
|
40
|
+
end
|
41
|
+
|
42
|
+
def testIncremental
|
43
|
+
count = 0
|
44
|
+
remaining = @simple_data.flatten
|
45
|
+
@simple_proactive.each { |value|
|
46
|
+
assert_not_nil value
|
47
|
+
assert_not_nil remaining.delete( value )
|
48
|
+
assert @call_count >= (count / @simple_pagesize)+1
|
49
|
+
count += 1
|
50
|
+
}
|
51
|
+
assert_equal 6, count
|
52
|
+
assert_equal 6, @call_count
|
53
|
+
end
|
54
|
+
|
55
|
+
def testRandomAccess
|
56
|
+
assert [2,4,6].member?( @simple_proactive[3] )
|
57
|
+
assert @call_count >= 2
|
58
|
+
assert_nil @simple_proactive[@simple_data_size]
|
59
|
+
assert_equal 6, @call_count
|
60
|
+
10.times do
|
61
|
+
index = rand(@simple_data_size+@simple_pagesize)
|
62
|
+
if index >= @simple_data_size
|
63
|
+
assert_nil @simple_proactive[index]
|
64
|
+
else
|
65
|
+
if index % 2 == 0
|
66
|
+
assert [1,3,5].member?( @simple_proactive[index] )
|
67
|
+
else
|
68
|
+
assert [2,4,6].member?( @simple_proactive[index] )
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
assert_equal 6, @call_count
|
73
|
+
assert_equal @simple_data.flatten, @simple_proactive.to_a.sort
|
74
|
+
end
|
75
|
+
|
76
|
+
def testFlush
|
77
|
+
@simple_proactive.to_a
|
78
|
+
@simple_proactive.to_a
|
79
|
+
assert_equal 6, @call_count
|
80
|
+
@simple_proactive.flush
|
81
|
+
@simple_proactive.to_a
|
82
|
+
assert_equal 12, @call_count
|
83
|
+
end
|
84
|
+
|
85
|
+
def testError
|
86
|
+
@picky_message = "picky picky picky"
|
87
|
+
exception_count = 0
|
88
|
+
@picky_proactive = ProactiveResults.new(Proc.new {|i| exception_count += 1 }) do |page|
|
89
|
+
@call_count += 1
|
90
|
+
if page < 3
|
91
|
+
@simple_data[ page-1 ]
|
92
|
+
else
|
93
|
+
raise @picky_message
|
94
|
+
end
|
95
|
+
end
|
96
|
+
assert_equal @simple_data.flatten[0..3], @picky_proactive.to_a
|
97
|
+
assert_equal 3, exception_count
|
98
|
+
end
|
99
|
+
|
100
|
+
def testImmutability
|
101
|
+
assert_equal 3, @simple_proactive[2]
|
102
|
+
a = @simple_proactive.to_a
|
103
|
+
assert_equal 3, a[2]
|
104
|
+
a[2] = 7
|
105
|
+
assert_equal 3, @simple_proactive[2]
|
106
|
+
end
|
107
|
+
|
108
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# Copyright:: Copyright (c) 2007 Amazon Technologies, Inc.
|
2
|
+
# License:: Apache License, Version 2.0
|
3
|
+
|
4
|
+
require 'test/unit/testcase'
|
5
|
+
require 'amazon/webservices/mturk/question_generator'
|
6
|
+
|
7
|
+
class TestQuestionGenerator < Test::Unit::TestCase
|
8
|
+
include Amazon::WebServices::MTurk
|
9
|
+
|
10
|
+
def testBuilder
|
11
|
+
xml = QuestionGenerator.build { |gen| gen.ask "What color is the sky?" }
|
12
|
+
assert_equal String, xml.class
|
13
|
+
assert !xml.empty?
|
14
|
+
assert xml =~ /What color is the sky/
|
15
|
+
end
|
16
|
+
|
17
|
+
def testXmlEscaping
|
18
|
+
xml = QuestionGenerator.build{ |gen| gen.ask "Is 1 > 2 & < 7 ?" }
|
19
|
+
assert xml =~ /<Text>(.*)<\/Text>/
|
20
|
+
escaped_text = $1
|
21
|
+
assert_equal "Is 1 > 2 & < 7 ?", escaped_text
|
22
|
+
end
|
23
|
+
|
24
|
+
def testValidXML
|
25
|
+
xml = QuestionGenerator.build{ |gen| gen.ask "who loves chocolate most?" }
|
26
|
+
require 'rexml/document'
|
27
|
+
# REXML will throw an exception if the xml is invalid / malformatted
|
28
|
+
valid = REXML::Document.new(xml)
|
29
|
+
assert_not_nil valid
|
30
|
+
end
|
31
|
+
|
32
|
+
def testAlternateInvocations
|
33
|
+
myQuestion = "how many tuna fit in a can?"
|
34
|
+
|
35
|
+
built = QuestionGenerator.build { |gen| gen.ask myQuestion }
|
36
|
+
built_basic = QuestionGenerator.build( :Basic ) { |gen| gen.ask myQuestion }
|
37
|
+
built_askbasic = QuestionGenerator.build { |gen| gen.askBasic myQuestion }
|
38
|
+
|
39
|
+
defaultgen = QuestionGenerator.new
|
40
|
+
defaultgen.ask myQuestion
|
41
|
+
obj = defaultgen.to_xml
|
42
|
+
|
43
|
+
defaultgen = QuestionGenerator.new
|
44
|
+
defaultgen.askBasic myQuestion
|
45
|
+
obj_askbasic = defaultgen.to_xml
|
46
|
+
|
47
|
+
basicgen = QuestionGenerator.new( :Basic )
|
48
|
+
basicgen.ask myQuestion
|
49
|
+
obj_basic = basicgen.to_xml
|
50
|
+
|
51
|
+
# all methods should generate the exact same string
|
52
|
+
[built_basic,built_askbasic,obj,obj_askbasic,obj_basic].each { |comp| assert_equal built, comp }
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# Copyright:: Copyright (c) 2007 Amazon Technologies, Inc.
|
2
|
+
# License:: Apache License, Version 2.0
|
3
|
+
|
4
|
+
require 'amazon/util/threadpool'
|
5
|
+
|
6
|
+
class TestThreadpool < Test::Unit::TestCase
|
7
|
+
include Amazon::Util
|
8
|
+
|
9
|
+
def setup
|
10
|
+
@tp = ThreadPool.new 5
|
11
|
+
end
|
12
|
+
|
13
|
+
def teardown
|
14
|
+
@tp.finish
|
15
|
+
end
|
16
|
+
|
17
|
+
def testNothing
|
18
|
+
assert true
|
19
|
+
end
|
20
|
+
|
21
|
+
def testDoSomething
|
22
|
+
@tp.addWork { sleep(0.1) }
|
23
|
+
assert true
|
24
|
+
end
|
25
|
+
|
26
|
+
def testSimple
|
27
|
+
q = Queue.new
|
28
|
+
|
29
|
+
5.times {|t| @tp.addWork(t) {|i| sleep(rand(4)*0.1) ; q << i } }
|
30
|
+
@tp.finish
|
31
|
+
|
32
|
+
s = []
|
33
|
+
5.times { s << q.pop }
|
34
|
+
assert_equal [0,1,2,3,4], s.sort
|
35
|
+
end
|
36
|
+
|
37
|
+
def testSync
|
38
|
+
s = []
|
39
|
+
|
40
|
+
5.times { |t| @tp.addWork(t) {|i| s << i } }
|
41
|
+
@tp.sync
|
42
|
+
assert_equal [0,1,2,3,4], s.sort
|
43
|
+
5.times { |t| @tp.addWork(t) {|i| s << i+5 } }
|
44
|
+
@tp.sync
|
45
|
+
|
46
|
+
assert_equal [0,1,2,3,4], s[0,5].sort
|
47
|
+
assert_equal [5,6,7,8,9], s[5,5].sort
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
# Copyright:: Copyright (c) 2007 Amazon Technologies, Inc.
|
2
|
+
# License:: Apache License, Version 2.0
|
3
|
+
|
4
|
+
require 'test/unit/testcase'
|
5
|
+
require 'amazon/util/binder'
|
6
|
+
require 'tempfile'
|
7
|
+
require 'fileutils'
|
8
|
+
|
9
|
+
class TestUserDataStore < Test::Unit::TestCase
|
10
|
+
include Amazon::Util
|
11
|
+
|
12
|
+
def setup
|
13
|
+
@tmpfile = Tempfile.new('MTurkTesting')
|
14
|
+
@fakehome = @tmpfile.path + 'homedir'
|
15
|
+
FileUtils.mkdir( @fakehome )
|
16
|
+
ENV['TEST_HOME_OVERRIDE'] = @fakehome
|
17
|
+
end
|
18
|
+
|
19
|
+
def teardown
|
20
|
+
ENV.delete 'TEST_HOME_OVERRIDE'
|
21
|
+
FileUtils.remove_dir( @fakehome )
|
22
|
+
@tmpfile = nil
|
23
|
+
end
|
24
|
+
|
25
|
+
def testSimpleValue
|
26
|
+
store = UserDataStore.new('TEST_MTURK')
|
27
|
+
store.set( :pudding, :color, 'yellow' )
|
28
|
+
store.save
|
29
|
+
|
30
|
+
store2 = UserDataStore.new('TEST_MTURK')
|
31
|
+
color = store2.get :pudding, :color
|
32
|
+
|
33
|
+
assert_equal 'yellow', color, 'pudding was the wrong color'
|
34
|
+
end
|
35
|
+
|
36
|
+
def testEmpty
|
37
|
+
store = UserDataStore.new('TEST_MTURK')
|
38
|
+
color = store.get :pudding, :color
|
39
|
+
assert_nil color
|
40
|
+
end
|
41
|
+
|
42
|
+
def testClear
|
43
|
+
store = UserDataStore.new('TEST_MTURK')
|
44
|
+
store.set( :pudding, :color, 'green' )
|
45
|
+
store.set( :pudding, :smell, 'sweet' )
|
46
|
+
store.save
|
47
|
+
|
48
|
+
store.clear(:pudding)
|
49
|
+
store.save
|
50
|
+
|
51
|
+
store2 = UserDataStore.new('TEST_MTURK')
|
52
|
+
assert_nil store2.get(:pudding,:color)
|
53
|
+
assert_nil store2.get(:pudding,:smell)
|
54
|
+
end
|
55
|
+
|
56
|
+
def testClearPartial
|
57
|
+
store = UserDataStore.new('TEST_MTURK')
|
58
|
+
store.set( :pudding, :color, 'pink' )
|
59
|
+
store.set( :pudding, :smell, 'sour' )
|
60
|
+
store.save
|
61
|
+
|
62
|
+
store.clear(:pudding,:smell)
|
63
|
+
store.save
|
64
|
+
|
65
|
+
store2 = UserDataStore.new('TEST_MTURK')
|
66
|
+
assert_equal 'pink', store2.get(:pudding,:color)
|
67
|
+
assert_nil store.get(:pudding,:smell)
|
68
|
+
end
|
69
|
+
|
70
|
+
def testNamespaces
|
71
|
+
store = UserDataStore.new('TEST_MTURK')
|
72
|
+
store.set( :pudding, :color, 'purple' )
|
73
|
+
|
74
|
+
same_namespaces = [ :Pudding, :PUDDING, :pUDDING, 'pudding', 'PUDDING', 'PuDDinG' ]
|
75
|
+
same_namespaces.each do |ns|
|
76
|
+
assert_equal 'purple', store.get(ns,:color)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
metadata
ADDED
@@ -0,0 +1,225 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mturk
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.8.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- David J Parrott
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDSjCCAjKgAwIBAgIBAjANBgkqhkiG9w0BAQUFADBLMRkwFwYDVQQDDBBydWJ5
|
14
|
+
LWF3cy1kZXZlbG9wMRkwFwYKCZImiZPyLGQBGRYJcnVieWZvcmdlMRMwEQYKCZIm
|
15
|
+
iZPyLGQBGRYDb3JnMB4XDTE0MTAxNzIyMzgyOVoXDTE1MTAxNzIyMzgyOVowSzEZ
|
16
|
+
MBcGA1UEAwwQcnVieS1hd3MtZGV2ZWxvcDEZMBcGCgmSJomT8ixkARkWCXJ1Ynlm
|
17
|
+
b3JnZTETMBEGCgmSJomT8ixkARkWA29yZzCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
18
|
+
ADCCAQoCggEBAMJ6D+5H3x+H81ugh3PcQhgA+GkZBqBcebjwKTCUdUO6TOg6PHwP
|
19
|
+
NcJTuAO4gI47EHkkR47kDdyHzdJIs2lVWctgut5PAT/Q3PsyyUfg3vQL9jhf994G
|
20
|
+
kpNlawivDSo2xubzb1eBeVIF3dtMek4ttA7T1ickv/7oYQrhTpv3AgPoVVcxcva/
|
21
|
+
DPXXBgepcMhdj0h4a+5YAW2t1m4DLYhX2tbzL2sLBZm07awUrOiUkJ9FalN2nevq
|
22
|
+
sdI6KFVaPf94iRDq7OoMCEPS5JwGzDJ5otIt6twj2cKfqOiUJD2Fgb6Y4a80KSXF
|
23
|
+
16kC+80frHhiIb+sGhANsgo8wB0L+BmMgyECAwEAAaM5MDcwCQYDVR0TBAIwADAL
|
24
|
+
BgNVHQ8EBAMCBLAwHQYDVR0OBBYEFN8sX6rx1b95BqTPZMSlDkGHUQByMA0GCSqG
|
25
|
+
SIb3DQEBBQUAA4IBAQBJZE0lH6ticfB+qRoa1dhQmC/iod6u3w0ZnDDkw+an0t/s
|
26
|
+
lUVQ3S8+8E1rs/VvPwuqI72/HF4PBYuvHMfZXiqsxNMQL2hrEDu6F7bx+K6+brpG
|
27
|
+
ERzK5uFNo2o6TFe2upe+IlA4MN8d/qyMSH5sQuikg79shg+kakVJJdqYVcIBDGah
|
28
|
+
RANSg7dXSpR0s1BQJ50qlye64u9JqiW25T4i3Uap/fD3wrlj0SlVwvasQ4qi3cgf
|
29
|
+
tlC13CXjOWGW+hn+n/swny4LFXOus/qZixxiMAePSmN3QUC+bl/GvdBqZz0uPmQc
|
30
|
+
QRVpdW2BFol3aw2mXmdYxaOwHvTxcB7DHmkfOf2h
|
31
|
+
-----END CERTIFICATE-----
|
32
|
+
date: 2015-02-17 00:00:00.000000000 Z
|
33
|
+
dependencies:
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: highline
|
36
|
+
requirement: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.2.7
|
41
|
+
type: :runtime
|
42
|
+
prerelease: false
|
43
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.2.7
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: nokogiri
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.4'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.4'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rdoc
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '4.0'
|
69
|
+
type: :development
|
70
|
+
prerelease: false
|
71
|
+
version_requirements: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '4.0'
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: hoe
|
78
|
+
requirement: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.13'
|
83
|
+
type: :development
|
84
|
+
prerelease: false
|
85
|
+
version_requirements: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '3.13'
|
90
|
+
description: |-
|
91
|
+
Mechanical Turk Ruby Libraries (mturk) is a set of libraries and tools
|
92
|
+
designed to make it easier for you to build solutions leveraging Amazon
|
93
|
+
Mechanical Turk. The goals of the libraries are:
|
94
|
+
|
95
|
+
* To abstract you from the "muck" of using web services
|
96
|
+
* To simplify using the Mechanical Turk APIs
|
97
|
+
* To allow you to focus more on solving the business problem
|
98
|
+
and less on managing technical details
|
99
|
+
email: requester@mturk.com
|
100
|
+
executables:
|
101
|
+
- mturk
|
102
|
+
extensions: []
|
103
|
+
extra_rdoc_files:
|
104
|
+
- History.md
|
105
|
+
- LICENSE.txt
|
106
|
+
- Manifest.txt
|
107
|
+
- NOTICE.txt
|
108
|
+
- README.md
|
109
|
+
files:
|
110
|
+
- ".gemtest"
|
111
|
+
- History.md
|
112
|
+
- LICENSE.txt
|
113
|
+
- Manifest.txt
|
114
|
+
- NOTICE.txt
|
115
|
+
- README.md
|
116
|
+
- Rakefile
|
117
|
+
- bin/mturk
|
118
|
+
- lib/amazon/util.rb
|
119
|
+
- lib/amazon/util/binder.rb
|
120
|
+
- lib/amazon/util/data_reader.rb
|
121
|
+
- lib/amazon/util/filter_chain.rb
|
122
|
+
- lib/amazon/util/hash_nesting.rb
|
123
|
+
- lib/amazon/util/lazy_results.rb
|
124
|
+
- lib/amazon/util/logging.rb
|
125
|
+
- lib/amazon/util/paginated_iterator.rb
|
126
|
+
- lib/amazon/util/proactive_results.rb
|
127
|
+
- lib/amazon/util/threadpool.rb
|
128
|
+
- lib/amazon/util/user_data_store.rb
|
129
|
+
- lib/amazon/webservices/mechanical_turk.rb
|
130
|
+
- lib/amazon/webservices/mechanical_turk_requester.rb
|
131
|
+
- lib/amazon/webservices/mturk/mechanical_turk_error_handler.rb
|
132
|
+
- lib/amazon/webservices/mturk/question_generator.rb
|
133
|
+
- lib/amazon/webservices/util/amazon_authentication_relay.rb
|
134
|
+
- lib/amazon/webservices/util/command_line.rb
|
135
|
+
- lib/amazon/webservices/util/convenience_wrapper.rb
|
136
|
+
- lib/amazon/webservices/util/filter_proxy.rb
|
137
|
+
- lib/amazon/webservices/util/mock_transport.rb
|
138
|
+
- lib/amazon/webservices/util/request_signer.rb
|
139
|
+
- lib/amazon/webservices/util/rest_transport.rb
|
140
|
+
- lib/amazon/webservices/util/soap_simplifier.rb
|
141
|
+
- lib/amazon/webservices/util/soap_transport.rb
|
142
|
+
- lib/amazon/webservices/util/soap_transport_header_handler.rb
|
143
|
+
- lib/amazon/webservices/util/unknown_result_exception.rb
|
144
|
+
- lib/amazon/webservices/util/validation_exception.rb
|
145
|
+
- lib/amazon/webservices/util/xml_simplifier.rb
|
146
|
+
- lib/mturk.rb
|
147
|
+
- lib/mturk/version.rb
|
148
|
+
- run_rcov.sh
|
149
|
+
- samples/best_image/BestImage.rb
|
150
|
+
- samples/best_image/best_image.properties
|
151
|
+
- samples/best_image/best_image.question
|
152
|
+
- samples/blank_slate/BlankSlate.rb
|
153
|
+
- samples/blank_slate/BlankSlate_multithreaded.rb
|
154
|
+
- samples/helloworld/MTurkHelloWorld.rb
|
155
|
+
- samples/helloworld/mturk.yml
|
156
|
+
- samples/review_policy/ReviewPolicy.rb
|
157
|
+
- samples/review_policy/review_policy.question
|
158
|
+
- samples/reviewer/Reviewer.rb
|
159
|
+
- samples/reviewer/mturk.yml
|
160
|
+
- samples/simple_survey/SimpleSurvey.rb
|
161
|
+
- samples/simple_survey/simple_survey.question
|
162
|
+
- samples/site_category/SiteCategory.rb
|
163
|
+
- samples/site_category/externalpage.htm
|
164
|
+
- samples/site_category/site_category.input
|
165
|
+
- samples/site_category/site_category.properties
|
166
|
+
- samples/site_category/site_category.question
|
167
|
+
- test/mturk/test_changehittypeofhit.rb
|
168
|
+
- test/mturk/test_error_handler.rb
|
169
|
+
- test/mturk/test_mechanical_turk_requester.rb
|
170
|
+
- test/mturk/test_mock_mechanical_turk_requester.rb
|
171
|
+
- test/test_mturk.rb
|
172
|
+
- test/unit/test_binder.rb
|
173
|
+
- test/unit/test_data_reader.rb
|
174
|
+
- test/unit/test_exceptions.rb
|
175
|
+
- test/unit/test_hash_nesting.rb
|
176
|
+
- test/unit/test_lazy_results.rb
|
177
|
+
- test/unit/test_mock_transport.rb
|
178
|
+
- test/unit/test_paginated_iterator.rb
|
179
|
+
- test/unit/test_proactive_results.rb
|
180
|
+
- test/unit/test_question_generator.rb
|
181
|
+
- test/unit/test_threadpool.rb
|
182
|
+
- test/unit/test_user_data_store.rb
|
183
|
+
homepage: https://requester.mturk.com/
|
184
|
+
licenses:
|
185
|
+
- APLv2
|
186
|
+
metadata: {}
|
187
|
+
post_install_message:
|
188
|
+
rdoc_options:
|
189
|
+
- "--main"
|
190
|
+
- README.md
|
191
|
+
require_paths:
|
192
|
+
- lib
|
193
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
194
|
+
requirements:
|
195
|
+
- - ">="
|
196
|
+
- !ruby/object:Gem::Version
|
197
|
+
version: '0'
|
198
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
199
|
+
requirements:
|
200
|
+
- - ">="
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: '0'
|
203
|
+
requirements: []
|
204
|
+
rubyforge_project:
|
205
|
+
rubygems_version: 2.4.5
|
206
|
+
signing_key:
|
207
|
+
specification_version: 4
|
208
|
+
summary: Ruby libraries for working with Mechanical Turk
|
209
|
+
test_files:
|
210
|
+
- test/unit/test_question_generator.rb
|
211
|
+
- test/unit/test_mock_transport.rb
|
212
|
+
- test/unit/test_lazy_results.rb
|
213
|
+
- test/unit/test_user_data_store.rb
|
214
|
+
- test/unit/test_data_reader.rb
|
215
|
+
- test/unit/test_paginated_iterator.rb
|
216
|
+
- test/unit/test_binder.rb
|
217
|
+
- test/unit/test_threadpool.rb
|
218
|
+
- test/unit/test_exceptions.rb
|
219
|
+
- test/unit/test_hash_nesting.rb
|
220
|
+
- test/unit/test_proactive_results.rb
|
221
|
+
- test/test_mturk.rb
|
222
|
+
- test/mturk/test_changehittypeofhit.rb
|
223
|
+
- test/mturk/test_mock_mechanical_turk_requester.rb
|
224
|
+
- test/mturk/test_mechanical_turk_requester.rb
|
225
|
+
- test/mturk/test_error_handler.rb
|