mturk 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +2 -0
  4. data/.gemtest +0 -0
  5. data/History.md +105 -0
  6. data/LICENSE.txt +202 -0
  7. data/Manifest.txt +72 -0
  8. data/NOTICE.txt +4 -0
  9. data/README.md +100 -0
  10. data/Rakefile +33 -0
  11. data/bin/mturk +9 -0
  12. data/lib/amazon/util.rb +10 -0
  13. data/lib/amazon/util/binder.rb +48 -0
  14. data/lib/amazon/util/data_reader.rb +169 -0
  15. data/lib/amazon/util/filter_chain.rb +79 -0
  16. data/lib/amazon/util/hash_nesting.rb +93 -0
  17. data/lib/amazon/util/lazy_results.rb +59 -0
  18. data/lib/amazon/util/logging.rb +23 -0
  19. data/lib/amazon/util/paginated_iterator.rb +70 -0
  20. data/lib/amazon/util/proactive_results.rb +116 -0
  21. data/lib/amazon/util/threadpool.rb +129 -0
  22. data/lib/amazon/util/user_data_store.rb +100 -0
  23. data/lib/amazon/webservices/mechanical_turk.rb +123 -0
  24. data/lib/amazon/webservices/mechanical_turk_requester.rb +285 -0
  25. data/lib/amazon/webservices/mturk/mechanical_turk_error_handler.rb +153 -0
  26. data/lib/amazon/webservices/mturk/question_generator.rb +58 -0
  27. data/lib/amazon/webservices/util/amazon_authentication_relay.rb +72 -0
  28. data/lib/amazon/webservices/util/command_line.rb +155 -0
  29. data/lib/amazon/webservices/util/convenience_wrapper.rb +90 -0
  30. data/lib/amazon/webservices/util/filter_proxy.rb +45 -0
  31. data/lib/amazon/webservices/util/mock_transport.rb +70 -0
  32. data/lib/amazon/webservices/util/request_signer.rb +42 -0
  33. data/lib/amazon/webservices/util/rest_transport.rb +120 -0
  34. data/lib/amazon/webservices/util/soap_simplifier.rb +48 -0
  35. data/lib/amazon/webservices/util/soap_transport.rb +20 -0
  36. data/lib/amazon/webservices/util/soap_transport_header_handler.rb +27 -0
  37. data/lib/amazon/webservices/util/unknown_result_exception.rb +27 -0
  38. data/lib/amazon/webservices/util/validation_exception.rb +55 -0
  39. data/lib/amazon/webservices/util/xml_simplifier.rb +61 -0
  40. data/lib/mturk.rb +19 -0
  41. data/lib/mturk/version.rb +6 -0
  42. data/run_rcov.sh +1 -0
  43. data/samples/best_image/BestImage.rb +61 -0
  44. data/samples/best_image/best_image.properties +39 -0
  45. data/samples/best_image/best_image.question +82 -0
  46. data/samples/blank_slate/BlankSlate.rb +63 -0
  47. data/samples/blank_slate/BlankSlate_multithreaded.rb +67 -0
  48. data/samples/helloworld/MTurkHelloWorld.rb +56 -0
  49. data/samples/helloworld/mturk.yml +8 -0
  50. data/samples/review_policy/ReviewPolicy.rb +139 -0
  51. data/samples/review_policy/review_policy.question +30 -0
  52. data/samples/reviewer/Reviewer.rb +103 -0
  53. data/samples/reviewer/mturk.yml +8 -0
  54. data/samples/simple_survey/SimpleSurvey.rb +98 -0
  55. data/samples/simple_survey/simple_survey.question +30 -0
  56. data/samples/site_category/SiteCategory.rb +87 -0
  57. data/samples/site_category/externalpage.htm +71 -0
  58. data/samples/site_category/site_category.input +6 -0
  59. data/samples/site_category/site_category.properties +56 -0
  60. data/samples/site_category/site_category.question +9 -0
  61. data/test/mturk/test_changehittypeofhit.rb +130 -0
  62. data/test/mturk/test_error_handler.rb +403 -0
  63. data/test/mturk/test_mechanical_turk_requester.rb +178 -0
  64. data/test/mturk/test_mock_mechanical_turk_requester.rb +205 -0
  65. data/test/test_mturk.rb +21 -0
  66. data/test/unit/test_binder.rb +89 -0
  67. data/test/unit/test_data_reader.rb +135 -0
  68. data/test/unit/test_exceptions.rb +32 -0
  69. data/test/unit/test_hash_nesting.rb +99 -0
  70. data/test/unit/test_lazy_results.rb +89 -0
  71. data/test/unit/test_mock_transport.rb +132 -0
  72. data/test/unit/test_paginated_iterator.rb +58 -0
  73. data/test/unit/test_proactive_results.rb +108 -0
  74. data/test/unit/test_question_generator.rb +55 -0
  75. data/test/unit/test_threadpool.rb +50 -0
  76. data/test/unit/test_user_data_store.rb +80 -0
  77. metadata +225 -0
  78. 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 &gt; 2 &amp; &lt; 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