rturk 2.0.5 → 2.1.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.
- data/Gemfile +4 -0
- data/README.markdown +2 -2
- data/Rakefile +2 -0
- data/VERSION +1 -1
- data/lib/rturk/builders/question_builder.rb +3 -2
- data/lib/rturk/parsers/response.rb +1 -1
- data/lib/rturk/parsers/responses/get_hit_response.rb +1 -1
- data/rturk.gemspec +13 -5
- data/spec/builders/question_spec.rb +6 -0
- data/spec/operations/notify_workers_spec.rb +2 -1
- data/spec/operations/send_test_event_notification_spec.rb +2 -1
- data/spec/operations/set_hit_type_notification_spec.rb +2 -1
- data/spec/response_spec.rb +5 -6
- data/spec/spec_helper.rb +5 -0
- metadata +42 -7
data/Gemfile
ADDED
data/README.markdown
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
## What's it do?!?
|
4
4
|
|
5
|
-
RTurk is designed to fire off Mechanical Turk tasks for pages that reside on
|
5
|
+
RTurk is designed to fire off Mechanical Turk tasks for pages that reside on an external site.
|
6
6
|
|
7
7
|
The pages could be a part of a rails app, or just a simple javascript enabled form.
|
8
8
|
|
@@ -11,7 +11,7 @@ You'd be better off with amazon's official library, in all its XML cruftiness.
|
|
11
11
|
|
12
12
|
## Installation
|
13
13
|
|
14
|
-
|
14
|
+
gem install rturk
|
15
15
|
|
16
16
|
## Use
|
17
17
|
|
data/Rakefile
CHANGED
@@ -18,6 +18,8 @@ begin
|
|
18
18
|
gem.email = "mark@mpercival.com"
|
19
19
|
gem.homepage = "http://github.com/markpercival/rturk"
|
20
20
|
gem.authors = ["Mark Percival"]
|
21
|
+
gem.add_dependency('rest-client', '>= 1.4.0')
|
22
|
+
gem.add_dependency('nokogiri', '>= 1.4.1')
|
21
23
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
22
24
|
end
|
23
25
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.0
|
1
|
+
2.1.0
|
@@ -19,10 +19,11 @@ module RTurk
|
|
19
19
|
def url
|
20
20
|
unless querystring.empty?
|
21
21
|
# slam the params onto url, if url already has params, add 'em with a &
|
22
|
-
@url.index('?') ? "#{@url}&#{querystring}" : "#{@url}?#{querystring}"
|
22
|
+
u = @url.index('?') ? "#{@url}&#{querystring}" : "#{@url}?#{querystring}"
|
23
23
|
else
|
24
|
-
@url
|
24
|
+
u = @url
|
25
25
|
end
|
26
|
+
CGI.escapeHTML(u) #URL should be XML/HTML escaped
|
26
27
|
end
|
27
28
|
|
28
29
|
def params
|
data/rturk.gemspec
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rturk}
|
8
|
-
s.version = "2.0
|
8
|
+
s.version = "2.1.0"
|
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-
|
12
|
+
s.date = %q{2010-02-28}
|
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
|
+
"Gemfile",
|
22
23
|
"LICENSE",
|
23
24
|
"README.markdown",
|
24
25
|
"Rakefile",
|
@@ -216,7 +217,7 @@ Gem::Specification.new do |s|
|
|
216
217
|
s.homepage = %q{http://github.com/markpercival/rturk}
|
217
218
|
s.rdoc_options = ["--charset=UTF-8"]
|
218
219
|
s.require_paths = ["lib"]
|
219
|
-
s.rubygems_version = %q{1.3.
|
220
|
+
s.rubygems_version = %q{1.3.6}
|
220
221
|
s.summary = %q{Mechanical Turk API Wrapper}
|
221
222
|
s.test_files = [
|
222
223
|
"spec/adapters/assignment_spec.rb",
|
@@ -259,8 +260,15 @@ Gem::Specification.new do |s|
|
|
259
260
|
s.specification_version = 3
|
260
261
|
|
261
262
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
263
|
+
s.add_runtime_dependency(%q<rest-client>, [">= 1.4.0"])
|
264
|
+
s.add_runtime_dependency(%q<nokogiri>, [">= 1.4.1"])
|
262
265
|
else
|
266
|
+
s.add_dependency(%q<rest-client>, [">= 1.4.0"])
|
267
|
+
s.add_dependency(%q<nokogiri>, [">= 1.4.1"])
|
263
268
|
end
|
264
269
|
else
|
270
|
+
s.add_dependency(%q<rest-client>, [">= 1.4.0"])
|
271
|
+
s.add_dependency(%q<nokogiri>, [">= 1.4.1"])
|
265
272
|
end
|
266
273
|
end
|
274
|
+
|
@@ -19,6 +19,12 @@ describe RTurk::Question do
|
|
19
19
|
question.frame_height.should == 500
|
20
20
|
end
|
21
21
|
|
22
|
+
it "should build a question " do
|
23
|
+
question = RTurk::Question.new('http://mpercival.com?myparam=true&anotherparam=12', :frame_height => 500)
|
24
|
+
question.url.should == 'http://mpercival.com?myparam=true&anotherparam=12'
|
25
|
+
question.frame_height.should == 500
|
26
|
+
end
|
27
|
+
|
22
28
|
it "should build a question with params" do
|
23
29
|
params = RTurk::Question.new('http://google.com/', :id => 'foo').to_params
|
24
30
|
CGI.unescape(params).should ==
|
@@ -26,7 +26,8 @@ describe RTurk::NotifyWorkers do
|
|
26
26
|
|
27
27
|
it 'should successfully request the operation' do
|
28
28
|
RTurk::Requester.should_receive(:request).once.with(
|
29
|
-
hash_including('Operation' => 'NotifyWorkers'))
|
29
|
+
hash_including('Operation' => 'NotifyWorkers')).and_return(
|
30
|
+
fake_response(''))
|
30
31
|
|
31
32
|
@lambda.call
|
32
33
|
end
|
@@ -30,7 +30,8 @@ describe RTurk::SendTestEventNotification do
|
|
30
30
|
|
31
31
|
it 'should successfully request the operation' do
|
32
32
|
RTurk::Requester.should_receive(:request).once.with(
|
33
|
-
hash_including('Operation' => 'SendTestEventNotification'))
|
33
|
+
hash_including('Operation' => 'SendTestEventNotification')).and_return(
|
34
|
+
fake_response(''))
|
34
35
|
|
35
36
|
@lambda.call
|
36
37
|
end
|
@@ -31,7 +31,8 @@ describe RTurk::SetHITTypeNotification do
|
|
31
31
|
|
32
32
|
it 'should successfully request the operation' do
|
33
33
|
RTurk::Requester.should_receive(:request).once.with(
|
34
|
-
hash_including('Operation' => 'SetHITTypeNotification'))
|
34
|
+
hash_including('Operation' => 'SetHITTypeNotification')).and_return(
|
35
|
+
fake_response(''))
|
35
36
|
|
36
37
|
@lambda.call
|
37
38
|
end
|
data/spec/response_spec.rb
CHANGED
@@ -5,18 +5,17 @@ describe RTurk::Response do
|
|
5
5
|
|
6
6
|
context "given an invalid response" do
|
7
7
|
|
8
|
-
before(:
|
9
|
-
@
|
10
|
-
|
8
|
+
before(:each) do
|
9
|
+
@bad_credentials_response = fake_response(File.read(File.join(SPEC_ROOT,'fake_responses','invalid_credentials.xml')))
|
11
10
|
end
|
12
11
|
|
13
12
|
it "should know it failed" do
|
14
|
-
lambda{RTurk::Response.new(@
|
13
|
+
lambda{RTurk::Response.new(@bad_credentials_response)}.should raise_error RTurk::InvalidRequest
|
15
14
|
end
|
16
15
|
|
17
16
|
it "should know why" do
|
18
17
|
begin
|
19
|
-
RTurk::Response.new(@
|
18
|
+
RTurk::Response.new(@bad_credentials_response)
|
20
19
|
rescue RTurk::InvalidRequest => e
|
21
20
|
e.message.should eql("AWS.NotAuthorized: The identity contained in the request is not authorized to use this AWSAccessKeyId")
|
22
21
|
end
|
@@ -28,7 +27,7 @@ describe RTurk::Response do
|
|
28
27
|
context "given a valid response" do
|
29
28
|
|
30
29
|
before(:all) do
|
31
|
-
@response = RTurk::Response.new(File.read(File.join(SPEC_ROOT,'fake_responses','create_hit.xml')))
|
30
|
+
@response = RTurk::Response.new(fake_response(File.read(File.join(SPEC_ROOT,'fake_responses','create_hit.xml'))))
|
32
31
|
end
|
33
32
|
|
34
33
|
it "should know it succeded" do
|
data/spec/spec_helper.rb
CHANGED
@@ -4,6 +4,7 @@ $: << File.join(File.dirname(__FILE__), '..', 'lib')
|
|
4
4
|
require 'rubygems'
|
5
5
|
require 'spec'
|
6
6
|
require 'fakeweb'
|
7
|
+
require 'yaml'
|
7
8
|
module FakeWeb
|
8
9
|
class Registry
|
9
10
|
# Comment out this override if you're using a quantum computer
|
@@ -30,6 +31,10 @@ def faker(response_name, opts = {})
|
|
30
31
|
FakeWeb.register_uri(:get, match, :body => response)
|
31
32
|
end
|
32
33
|
|
34
|
+
def fake_response(xml)
|
35
|
+
mock('RestClientFakeResponse', :body => xml)
|
36
|
+
end
|
37
|
+
|
33
38
|
Spec::Runner.configure do |config|
|
34
39
|
|
35
40
|
end
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rturk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 2
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
version: 2.1.0
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Mark Percival
|
@@ -9,10 +14,37 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2010-
|
17
|
+
date: 2010-02-28 00:00:00 -05:00
|
13
18
|
default_executable:
|
14
|
-
dependencies:
|
15
|
-
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: rest-client
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 1
|
29
|
+
- 4
|
30
|
+
- 0
|
31
|
+
version: 1.4.0
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: nokogiri
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 1
|
43
|
+
- 4
|
44
|
+
- 1
|
45
|
+
version: 1.4.1
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id002
|
16
48
|
description:
|
17
49
|
email: mark@mpercival.com
|
18
50
|
executables: []
|
@@ -26,6 +58,7 @@ files:
|
|
26
58
|
- .gitignore
|
27
59
|
- .gitmodules
|
28
60
|
- .yardoc
|
61
|
+
- Gemfile
|
29
62
|
- LICENSE
|
30
63
|
- README.markdown
|
31
64
|
- Rakefile
|
@@ -232,18 +265,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
232
265
|
requirements:
|
233
266
|
- - ">="
|
234
267
|
- !ruby/object:Gem::Version
|
268
|
+
segments:
|
269
|
+
- 0
|
235
270
|
version: "0"
|
236
|
-
version:
|
237
271
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
238
272
|
requirements:
|
239
273
|
- - ">="
|
240
274
|
- !ruby/object:Gem::Version
|
275
|
+
segments:
|
276
|
+
- 0
|
241
277
|
version: "0"
|
242
|
-
version:
|
243
278
|
requirements: []
|
244
279
|
|
245
280
|
rubyforge_project:
|
246
|
-
rubygems_version: 1.3.
|
281
|
+
rubygems_version: 1.3.6
|
247
282
|
signing_key:
|
248
283
|
specification_version: 3
|
249
284
|
summary: Mechanical Turk API Wrapper
|