dbgrandi-ruby-aws 1.2.0

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 (70) hide show
  1. data/History.txt +38 -0
  2. data/LICENSE.txt +202 -0
  3. data/Manifest.txt +69 -0
  4. data/NOTICE.txt +4 -0
  5. data/README.txt +105 -0
  6. data/Rakefile +20 -0
  7. data/bin/ruby-aws +9 -0
  8. data/lib/amazon/util.rb +10 -0
  9. data/lib/amazon/util/binder.rb +44 -0
  10. data/lib/amazon/util/data_reader.rb +157 -0
  11. data/lib/amazon/util/filter_chain.rb +79 -0
  12. data/lib/amazon/util/hash_nesting.rb +93 -0
  13. data/lib/amazon/util/lazy_results.rb +59 -0
  14. data/lib/amazon/util/logging.rb +23 -0
  15. data/lib/amazon/util/paginated_iterator.rb +70 -0
  16. data/lib/amazon/util/proactive_results.rb +116 -0
  17. data/lib/amazon/util/threadpool.rb +129 -0
  18. data/lib/amazon/util/user_data_store.rb +100 -0
  19. data/lib/amazon/webservices/mechanical_turk.rb +117 -0
  20. data/lib/amazon/webservices/mechanical_turk_requester.rb +261 -0
  21. data/lib/amazon/webservices/mturk/mechanical_turk_error_handler.rb +136 -0
  22. data/lib/amazon/webservices/mturk/question_generator.rb +58 -0
  23. data/lib/amazon/webservices/util/amazon_authentication_relay.rb +64 -0
  24. data/lib/amazon/webservices/util/command_line.rb +156 -0
  25. data/lib/amazon/webservices/util/convenience_wrapper.rb +90 -0
  26. data/lib/amazon/webservices/util/filter_proxy.rb +45 -0
  27. data/lib/amazon/webservices/util/mock_transport.rb +70 -0
  28. data/lib/amazon/webservices/util/request_signer.rb +42 -0
  29. data/lib/amazon/webservices/util/rest_transport.rb +108 -0
  30. data/lib/amazon/webservices/util/soap_simplifier.rb +48 -0
  31. data/lib/amazon/webservices/util/soap_transport.rb +38 -0
  32. data/lib/amazon/webservices/util/soap_transport_header_handler.rb +27 -0
  33. data/lib/amazon/webservices/util/unknown_result_exception.rb +27 -0
  34. data/lib/amazon/webservices/util/validation_exception.rb +55 -0
  35. data/lib/amazon/webservices/util/xml_simplifier.rb +61 -0
  36. data/lib/ruby-aws.rb +21 -0
  37. data/lib/ruby-aws/version.rb +8 -0
  38. data/samples/mturk/best_image/BestImage.rb +61 -0
  39. data/samples/mturk/best_image/best_image.properties +39 -0
  40. data/samples/mturk/best_image/best_image.question +82 -0
  41. data/samples/mturk/blank_slate/BlankSlate.rb +63 -0
  42. data/samples/mturk/blank_slate/BlankSlate_multithreaded.rb +67 -0
  43. data/samples/mturk/helloworld/MTurkHelloWorld.rb +56 -0
  44. data/samples/mturk/helloworld/mturk.yml +8 -0
  45. data/samples/mturk/reviewer/Reviewer.rb +103 -0
  46. data/samples/mturk/reviewer/mturk.yml +8 -0
  47. data/samples/mturk/simple_survey/SimpleSurvey.rb +90 -0
  48. data/samples/mturk/simple_survey/simple_survey.question +30 -0
  49. data/samples/mturk/site_category/SiteCategory.rb +87 -0
  50. data/samples/mturk/site_category/externalpage.htm +71 -0
  51. data/samples/mturk/site_category/site_category.input +6 -0
  52. data/samples/mturk/site_category/site_category.properties +45 -0
  53. data/samples/mturk/site_category/site_category.question +9 -0
  54. data/test/mturk/test_changehittypeofhit.rb +130 -0
  55. data/test/mturk/test_error_handler.rb +135 -0
  56. data/test/mturk/test_mechanical_turk_requester.rb +178 -0
  57. data/test/mturk/test_mock_mechanical_turk_requester.rb +205 -0
  58. data/test/test_ruby-aws.rb +22 -0
  59. data/test/unit/test_binder.rb +89 -0
  60. data/test/unit/test_data_reader.rb +135 -0
  61. data/test/unit/test_exceptions.rb +32 -0
  62. data/test/unit/test_hash_nesting.rb +93 -0
  63. data/test/unit/test_lazy_results.rb +89 -0
  64. data/test/unit/test_mock_transport.rb +132 -0
  65. data/test/unit/test_paginated_iterator.rb +58 -0
  66. data/test/unit/test_proactive_results.rb +108 -0
  67. data/test/unit/test_question_generator.rb +54 -0
  68. data/test/unit/test_threadpool.rb +50 -0
  69. data/test/unit/test_user_data_store.rb +80 -0
  70. metadata +158 -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
31
+ assert_equal 6, @call_count
32
+ result = @simple_proactive.collect
33
+ assert_equal @simple_data.flatten, result
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,54 @@
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
+ end
30
+
31
+ def testAlternateInvocations
32
+ myQuestion = "how many tuna fit in a can?"
33
+
34
+ built = QuestionGenerator.build { |gen| gen.ask myQuestion }
35
+ built_basic = QuestionGenerator.build( :Basic ) { |gen| gen.ask myQuestion }
36
+ built_askbasic = QuestionGenerator.build { |gen| gen.askBasic myQuestion }
37
+
38
+ defaultgen = QuestionGenerator.new
39
+ defaultgen.ask myQuestion
40
+ obj = defaultgen.to_xml
41
+
42
+ defaultgen = QuestionGenerator.new
43
+ defaultgen.askBasic myQuestion
44
+ obj_askbasic = defaultgen.to_xml
45
+
46
+ basicgen = QuestionGenerator.new( :Basic )
47
+ basicgen.ask myQuestion
48
+ obj_basic = basicgen.to_xml
49
+
50
+ # all methods should generate the exact same string
51
+ [built_basic,built_askbasic,obj,obj_askbasic,obj_basic].each { |comp| assert_equal built, comp }
52
+ end
53
+
54
+ 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('RubyAWSTesting')
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 = store.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 store.get(:pudding,:color)
53
+ assert_nil store.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', store.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,158 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dbgrandi-ruby-aws
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.0
5
+ platform: ruby
6
+ authors:
7
+ - David J Parrott
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-05-04 00:00:00 -07:00
13
+ default_executable: ruby-aws
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: highline
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.2.7
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: hoe
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 1.5.1
32
+ version:
33
+ description: "Libraries for Amazon Web Services (ruby-aws) is a set of libraries and tools designed to make it easier for you to build solutions leveraging Amazon Web Services like Amazon Mechanical Turk. The goals of the libraries are: * To abstract you from the \"muck\" of using web services * To simplify using the various Amazon Web Service APIs * To allow you to focus more on solving the business problem and less on managing technical details"
34
+ email: ruby-aws-develop@rubyforge.org
35
+ executables:
36
+ - ruby-aws
37
+ extensions: []
38
+
39
+ extra_rdoc_files:
40
+ - History.txt
41
+ - LICENSE.txt
42
+ - Manifest.txt
43
+ - NOTICE.txt
44
+ - README.txt
45
+ files:
46
+ - History.txt
47
+ - LICENSE.txt
48
+ - Manifest.txt
49
+ - NOTICE.txt
50
+ - README.txt
51
+ - Rakefile
52
+ - bin/ruby-aws
53
+ - lib/amazon/util.rb
54
+ - lib/amazon/util/binder.rb
55
+ - lib/amazon/util/data_reader.rb
56
+ - lib/amazon/util/filter_chain.rb
57
+ - lib/amazon/util/hash_nesting.rb
58
+ - lib/amazon/util/lazy_results.rb
59
+ - lib/amazon/util/logging.rb
60
+ - lib/amazon/util/paginated_iterator.rb
61
+ - lib/amazon/util/proactive_results.rb
62
+ - lib/amazon/util/threadpool.rb
63
+ - lib/amazon/util/user_data_store.rb
64
+ - lib/amazon/webservices/mechanical_turk.rb
65
+ - lib/amazon/webservices/mechanical_turk_requester.rb
66
+ - lib/amazon/webservices/mturk/mechanical_turk_error_handler.rb
67
+ - lib/amazon/webservices/mturk/question_generator.rb
68
+ - lib/amazon/webservices/util/amazon_authentication_relay.rb
69
+ - lib/amazon/webservices/util/command_line.rb
70
+ - lib/amazon/webservices/util/convenience_wrapper.rb
71
+ - lib/amazon/webservices/util/filter_proxy.rb
72
+ - lib/amazon/webservices/util/mock_transport.rb
73
+ - lib/amazon/webservices/util/request_signer.rb
74
+ - lib/amazon/webservices/util/rest_transport.rb
75
+ - lib/amazon/webservices/util/soap_simplifier.rb
76
+ - lib/amazon/webservices/util/soap_transport.rb
77
+ - lib/amazon/webservices/util/soap_transport_header_handler.rb
78
+ - lib/amazon/webservices/util/unknown_result_exception.rb
79
+ - lib/amazon/webservices/util/validation_exception.rb
80
+ - lib/amazon/webservices/util/xml_simplifier.rb
81
+ - lib/ruby-aws.rb
82
+ - lib/ruby-aws/version.rb
83
+ - samples/mturk/best_image/BestImage.rb
84
+ - samples/mturk/best_image/best_image.properties
85
+ - samples/mturk/best_image/best_image.question
86
+ - samples/mturk/blank_slate/BlankSlate.rb
87
+ - samples/mturk/blank_slate/BlankSlate_multithreaded.rb
88
+ - samples/mturk/helloworld/MTurkHelloWorld.rb
89
+ - samples/mturk/helloworld/mturk.yml
90
+ - samples/mturk/reviewer/Reviewer.rb
91
+ - samples/mturk/reviewer/mturk.yml
92
+ - samples/mturk/simple_survey/SimpleSurvey.rb
93
+ - samples/mturk/simple_survey/simple_survey.question
94
+ - samples/mturk/site_category/SiteCategory.rb
95
+ - samples/mturk/site_category/externalpage.htm
96
+ - samples/mturk/site_category/site_category.input
97
+ - samples/mturk/site_category/site_category.properties
98
+ - samples/mturk/site_category/site_category.question
99
+ - test/mturk/test_changehittypeofhit.rb
100
+ - test/mturk/test_error_handler.rb
101
+ - test/mturk/test_mechanical_turk_requester.rb
102
+ - test/mturk/test_mock_mechanical_turk_requester.rb
103
+ - test/test_ruby-aws.rb
104
+ - test/unit/test_binder.rb
105
+ - test/unit/test_data_reader.rb
106
+ - test/unit/test_exceptions.rb
107
+ - test/unit/test_hash_nesting.rb
108
+ - test/unit/test_lazy_results.rb
109
+ - test/unit/test_mock_transport.rb
110
+ - test/unit/test_paginated_iterator.rb
111
+ - test/unit/test_proactive_results.rb
112
+ - test/unit/test_question_generator.rb
113
+ - test/unit/test_threadpool.rb
114
+ - test/unit/test_user_data_store.rb
115
+ has_rdoc: true
116
+ homepage: http://rubyforge.org/projects/ruby-aws/
117
+ post_install_message:
118
+ rdoc_options:
119
+ - --main
120
+ - README.txt
121
+ require_paths:
122
+ - lib
123
+ required_ruby_version: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: "0"
128
+ version:
129
+ required_rubygems_version: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: "0"
134
+ version:
135
+ requirements: []
136
+
137
+ rubyforge_project: ruby-aws
138
+ rubygems_version: 1.0.1
139
+ signing_key:
140
+ specification_version: 2
141
+ summary: Ruby libraries for working with Amazon Web Services ( Mechanical Turk )
142
+ test_files:
143
+ - test/mturk/test_changehittypeofhit.rb
144
+ - test/mturk/test_error_handler.rb
145
+ - test/mturk/test_mechanical_turk_requester.rb
146
+ - test/mturk/test_mock_mechanical_turk_requester.rb
147
+ - test/test_ruby-aws.rb
148
+ - test/unit/test_binder.rb
149
+ - test/unit/test_data_reader.rb
150
+ - test/unit/test_exceptions.rb
151
+ - test/unit/test_hash_nesting.rb
152
+ - test/unit/test_lazy_results.rb
153
+ - test/unit/test_mock_transport.rb
154
+ - test/unit/test_paginated_iterator.rb
155
+ - test/unit/test_proactive_results.rb
156
+ - test/unit/test_question_generator.rb
157
+ - test/unit/test_threadpool.rb
158
+ - test/unit/test_user_data_store.rb