houdini-rails3 0.1.0 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +4 -7
- data/Gemfile.lock +1 -1
- data/README.markdown +71 -0
- data/VERSION +1 -1
- data/houdini-rails3.gemspec +14 -14
- data/lib/houdini_rails/model.rb +1 -0
- metadata +36 -36
- data/README.rdoc +0 -3
data/Gemfile
CHANGED
@@ -1,19 +1,16 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
|
3
|
-
gem "rails", "3.0.0"
|
4
|
-
gem "capybara", ">= 0.3.9"
|
5
|
-
gem "sqlite3-ruby", :require => "sqlite3"
|
6
|
-
|
3
|
+
gem "rails", "~>3.0.0"
|
7
4
|
gem "tilt", "~> 1.1"
|
8
5
|
|
9
6
|
if RUBY_VERSION < '1.9'
|
10
7
|
gem "ruby-debug", ">= 0.10.3"
|
11
8
|
end
|
12
9
|
|
13
|
-
|
14
|
-
gem "rspec-rails", ">= 2.0.0.beta"
|
15
|
-
|
16
10
|
group :development do
|
11
|
+
gem "rspec-rails", ">= 2.0.0.beta"
|
12
|
+
gem "capybara", ">= 0.3.9"
|
13
|
+
gem "sqlite3-ruby", :require => "sqlite3"
|
17
14
|
gem "bundler", "~> 1.0.0"
|
18
15
|
gem "jeweler", "~> 1.5.0.pre3"
|
19
16
|
gem "rcov", ">= 0"
|
data/Gemfile.lock
CHANGED
data/README.markdown
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
# Overview
|
2
|
+
|
3
|
+
This ruby gem is a Rails Engine for using the Houdini Mechanical Turk API. It provides easy integration into your models and sets up the necessary controllers to receive answers posted back to your app from Houdini.
|
4
|
+
|
5
|
+
Check out the [Houdini Documentation](http://houdinihq.com/documentation) for more info about the API.
|
6
|
+
|
7
|
+
# Installation (Rails 2.3.x)
|
8
|
+
|
9
|
+
Add the gem to your Gemfile
|
10
|
+
|
11
|
+
gem 'houdini-rails'
|
12
|
+
|
13
|
+
Configure a few constants in config/application.rb
|
14
|
+
|
15
|
+
config.after_initialize do
|
16
|
+
::Houdini::KEY = 'YOUR_API_KEY'
|
17
|
+
::Houdini::HOST = 'houdinihq.com' # or 'houdini-sandbox.heroku.com' for testing
|
18
|
+
::Houdini::RAILS_HOST = 'your_app_domain.com'
|
19
|
+
end
|
20
|
+
|
21
|
+
You may want to configure the Houdini constants differently for each of you environments.
|
22
|
+
|
23
|
+
# Example Usage
|
24
|
+
|
25
|
+
Setup Houdini in your ActiveRecord model:
|
26
|
+
|
27
|
+
class Post < ActiveRecord::Base
|
28
|
+
include Houdini::Model
|
29
|
+
|
30
|
+
houdini :image_moderation,
|
31
|
+
:price => '0.01',
|
32
|
+
:title => 'Please moderate image',
|
33
|
+
:form_template => 'app/views/houdini_templates/post.html.erb',
|
34
|
+
:on_task_completion => :process_image_moderation_answer
|
35
|
+
|
36
|
+
after_create :moderate_image
|
37
|
+
|
38
|
+
def moderate_image
|
39
|
+
Houdini.perform!(:image_moderation, self)
|
40
|
+
end
|
41
|
+
|
42
|
+
def process_image_moderation_answer(params)
|
43
|
+
update_attribute(:flagged => params[:flagged])
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
Create a template for the form to be sent to Mechanical Turk:
|
48
|
+
|
49
|
+
<!--app/views/houdini_templates/post.html.erb -->
|
50
|
+
|
51
|
+
<h2>Review the image for offensiveness</h2>
|
52
|
+
|
53
|
+
<h3>Instructions</h3>
|
54
|
+
<p>Please review the image below.</p>
|
55
|
+
|
56
|
+
<img src="<%= post.image_url %>"><br/>
|
57
|
+
|
58
|
+
<input type="radio" name="flagged" value="yes" class="required">
|
59
|
+
Yes, this picture is offensive
|
60
|
+
</input>
|
61
|
+
|
62
|
+
<input type="radio" name="flagged" value="no" class="required">
|
63
|
+
No, this picture is okay
|
64
|
+
</input>
|
65
|
+
|
66
|
+
Post.houdini class method options:
|
67
|
+
|
68
|
+
* :price - Amount in cents you want to pay for the task to be completed
|
69
|
+
* :title - Title that Mechanical Turk workers will see when browsing/searching available tasks
|
70
|
+
* :form_template - ERB or HAML template used to render the form html.
|
71
|
+
* :on_task_completion - Method that Houdini should call when the answer is posted back to your app. The results of your form will be passed into the method as the only parameter. `{:flagged => 'yes'}` in the example above.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/houdini-rails3.gemspec
CHANGED
@@ -5,16 +5,16 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{houdini-rails3}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Chris Conley"]
|
12
|
-
s.date = %q{2010-10-
|
12
|
+
s.date = %q{2010-10-22}
|
13
13
|
s.description = %q{Rails 3 Engine for using the Houdini Mechanical Turk API}
|
14
14
|
s.email = %q{chris@chrisconley.me}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
|
-
"README.
|
17
|
+
"README.markdown"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".document",
|
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
|
|
23
23
|
"Gemfile",
|
24
24
|
"Gemfile.lock",
|
25
25
|
"LICENSE",
|
26
|
-
"README.
|
26
|
+
"README.markdown",
|
27
27
|
"Rakefile",
|
28
28
|
"VERSION",
|
29
29
|
"app/controllers/houdini/postbacks_controller.rb",
|
@@ -105,12 +105,12 @@ Gem::Specification.new do |s|
|
|
105
105
|
s.specification_version = 3
|
106
106
|
|
107
107
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
108
|
-
s.add_runtime_dependency(%q<rails>, ["
|
109
|
-
s.add_runtime_dependency(%q<capybara>, [">= 0.3.9"])
|
110
|
-
s.add_runtime_dependency(%q<sqlite3-ruby>, [">= 0"])
|
108
|
+
s.add_runtime_dependency(%q<rails>, ["~> 3.0.0"])
|
111
109
|
s.add_runtime_dependency(%q<tilt>, ["~> 1.1"])
|
112
110
|
s.add_runtime_dependency(%q<ruby-debug>, [">= 0.10.3"])
|
113
|
-
s.
|
111
|
+
s.add_development_dependency(%q<rspec-rails>, [">= 2.0.0.beta"])
|
112
|
+
s.add_development_dependency(%q<capybara>, [">= 0.3.9"])
|
113
|
+
s.add_development_dependency(%q<sqlite3-ruby>, [">= 0"])
|
114
114
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
115
115
|
s.add_development_dependency(%q<jeweler>, ["~> 1.5.0.pre3"])
|
116
116
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
@@ -120,12 +120,12 @@ Gem::Specification.new do |s|
|
|
120
120
|
s.add_development_dependency(%q<jeweler>, ["~> 1.5.0.pre3"])
|
121
121
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
122
122
|
else
|
123
|
-
s.add_dependency(%q<rails>, ["
|
124
|
-
s.add_dependency(%q<capybara>, [">= 0.3.9"])
|
125
|
-
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
|
123
|
+
s.add_dependency(%q<rails>, ["~> 3.0.0"])
|
126
124
|
s.add_dependency(%q<tilt>, ["~> 1.1"])
|
127
125
|
s.add_dependency(%q<ruby-debug>, [">= 0.10.3"])
|
128
126
|
s.add_dependency(%q<rspec-rails>, [">= 2.0.0.beta"])
|
127
|
+
s.add_dependency(%q<capybara>, [">= 0.3.9"])
|
128
|
+
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
|
129
129
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
130
130
|
s.add_dependency(%q<jeweler>, ["~> 1.5.0.pre3"])
|
131
131
|
s.add_dependency(%q<rcov>, [">= 0"])
|
@@ -136,12 +136,12 @@ Gem::Specification.new do |s|
|
|
136
136
|
s.add_dependency(%q<rcov>, [">= 0"])
|
137
137
|
end
|
138
138
|
else
|
139
|
-
s.add_dependency(%q<rails>, ["
|
140
|
-
s.add_dependency(%q<capybara>, [">= 0.3.9"])
|
141
|
-
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
|
139
|
+
s.add_dependency(%q<rails>, ["~> 3.0.0"])
|
142
140
|
s.add_dependency(%q<tilt>, ["~> 1.1"])
|
143
141
|
s.add_dependency(%q<ruby-debug>, [">= 0.10.3"])
|
144
142
|
s.add_dependency(%q<rspec-rails>, [">= 2.0.0.beta"])
|
143
|
+
s.add_dependency(%q<capybara>, [">= 0.3.9"])
|
144
|
+
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
|
145
145
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
146
146
|
s.add_dependency(%q<jeweler>, ["~> 1.5.0.pre3"])
|
147
147
|
s.add_dependency(%q<rcov>, [">= 0"])
|
data/lib/houdini_rails/model.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: houdini-rails3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 2
|
10
|
+
version: 0.1.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Chris Conley
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-10-
|
18
|
+
date: 2010-10-22 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -25,7 +25,7 @@ dependencies:
|
|
25
25
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
26
26
|
none: false
|
27
27
|
requirements:
|
28
|
-
- -
|
28
|
+
- - ~>
|
29
29
|
- !ruby/object:Gem::Version
|
30
30
|
hash: 7
|
31
31
|
segments:
|
@@ -37,80 +37,80 @@ dependencies:
|
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
|
-
name:
|
40
|
+
name: tilt
|
41
41
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
42
42
|
none: false
|
43
43
|
requirements:
|
44
|
-
- -
|
44
|
+
- - ~>
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
hash:
|
46
|
+
hash: 13
|
47
47
|
segments:
|
48
|
-
-
|
49
|
-
-
|
50
|
-
|
51
|
-
version: 0.3.9
|
48
|
+
- 1
|
49
|
+
- 1
|
50
|
+
version: "1.1"
|
52
51
|
requirement: *id002
|
53
52
|
- !ruby/object:Gem::Dependency
|
54
53
|
type: :runtime
|
55
54
|
prerelease: false
|
56
|
-
name:
|
55
|
+
name: ruby-debug
|
57
56
|
version_requirements: &id003 !ruby/object:Gem::Requirement
|
58
57
|
none: false
|
59
58
|
requirements:
|
60
59
|
- - ">="
|
61
60
|
- !ruby/object:Gem::Version
|
62
|
-
hash:
|
61
|
+
hash: 49
|
63
62
|
segments:
|
64
63
|
- 0
|
65
|
-
|
64
|
+
- 10
|
65
|
+
- 3
|
66
|
+
version: 0.10.3
|
66
67
|
requirement: *id003
|
67
68
|
- !ruby/object:Gem::Dependency
|
68
|
-
type: :
|
69
|
+
type: :development
|
69
70
|
prerelease: false
|
70
|
-
name:
|
71
|
+
name: rspec-rails
|
71
72
|
version_requirements: &id004 !ruby/object:Gem::Requirement
|
72
73
|
none: false
|
73
74
|
requirements:
|
74
|
-
- -
|
75
|
+
- - ">="
|
75
76
|
- !ruby/object:Gem::Version
|
76
|
-
hash:
|
77
|
+
hash: 31098209
|
77
78
|
segments:
|
78
|
-
-
|
79
|
-
-
|
80
|
-
|
79
|
+
- 2
|
80
|
+
- 0
|
81
|
+
- 0
|
82
|
+
- beta
|
83
|
+
version: 2.0.0.beta
|
81
84
|
requirement: *id004
|
82
85
|
- !ruby/object:Gem::Dependency
|
83
|
-
type: :
|
86
|
+
type: :development
|
84
87
|
prerelease: false
|
85
|
-
name:
|
88
|
+
name: capybara
|
86
89
|
version_requirements: &id005 !ruby/object:Gem::Requirement
|
87
90
|
none: false
|
88
91
|
requirements:
|
89
92
|
- - ">="
|
90
93
|
- !ruby/object:Gem::Version
|
91
|
-
hash:
|
94
|
+
hash: 1
|
92
95
|
segments:
|
93
96
|
- 0
|
94
|
-
- 10
|
95
97
|
- 3
|
96
|
-
|
98
|
+
- 9
|
99
|
+
version: 0.3.9
|
97
100
|
requirement: *id005
|
98
101
|
- !ruby/object:Gem::Dependency
|
99
|
-
type: :
|
102
|
+
type: :development
|
100
103
|
prerelease: false
|
101
|
-
name:
|
104
|
+
name: sqlite3-ruby
|
102
105
|
version_requirements: &id006 !ruby/object:Gem::Requirement
|
103
106
|
none: false
|
104
107
|
requirements:
|
105
108
|
- - ">="
|
106
109
|
- !ruby/object:Gem::Version
|
107
|
-
hash:
|
110
|
+
hash: 3
|
108
111
|
segments:
|
109
|
-
- 2
|
110
|
-
- 0
|
111
112
|
- 0
|
112
|
-
|
113
|
-
version: 2.0.0.beta
|
113
|
+
version: "0"
|
114
114
|
requirement: *id006
|
115
115
|
- !ruby/object:Gem::Dependency
|
116
116
|
type: :development
|
@@ -247,7 +247,7 @@ extensions: []
|
|
247
247
|
|
248
248
|
extra_rdoc_files:
|
249
249
|
- LICENSE
|
250
|
-
- README.
|
250
|
+
- README.markdown
|
251
251
|
files:
|
252
252
|
- .document
|
253
253
|
- .gitignore
|
@@ -255,7 +255,7 @@ files:
|
|
255
255
|
- Gemfile
|
256
256
|
- Gemfile.lock
|
257
257
|
- LICENSE
|
258
|
-
- README.
|
258
|
+
- README.markdown
|
259
259
|
- Rakefile
|
260
260
|
- VERSION
|
261
261
|
- app/controllers/houdini/postbacks_controller.rb
|
data/README.rdoc
DELETED