houdini-rails3 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/app/controllers/houdini/postbacks_controller.rb +1 -1
- data/houdini-rails3.gemspec +2 -2
- data/lib/houdini_rails/model.rb +23 -10
- data/spec/requests/postbacks_spec.rb +1 -1
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.5
|
@@ -3,7 +3,7 @@ class Houdini::PostbacksController < ApplicationController
|
|
3
3
|
def create
|
4
4
|
object_class = params[:object_class].classify.constantize
|
5
5
|
object = object_class.find(params[:object_id])
|
6
|
-
if object.process_postback(HashWithIndifferentAccess.new
|
6
|
+
if object.process_postback(params[:task_name], HashWithIndifferentAccess.new(request.request_parameters))
|
7
7
|
render :json => {:success => true}
|
8
8
|
else
|
9
9
|
render :json => {:success => false}, :status => 422
|
data/houdini-rails3.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
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.5"
|
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{
|
12
|
+
s.date = %q{2011-01-24}
|
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 = [
|
data/lib/houdini_rails/model.rb
CHANGED
@@ -1,39 +1,52 @@
|
|
1
1
|
module Houdini
|
2
2
|
module Model
|
3
|
-
def self.included(base)
|
4
|
-
|
3
|
+
# def self.included(base)
|
4
|
+
# base.extend ClassMethods
|
5
|
+
# base.include Rails.application.routes.url_helpers
|
6
|
+
# end
|
7
|
+
|
8
|
+
extend ActiveSupport::Concern
|
9
|
+
|
10
|
+
included do
|
11
|
+
include Rails.application.routes.url_helpers
|
12
|
+
extend ClassMethods
|
5
13
|
end
|
6
14
|
|
7
15
|
module ClassMethods
|
8
16
|
def houdini(name, options)
|
9
|
-
|
10
|
-
cattr_accessor :houdini_task
|
11
|
-
self.houdini_task = Houdini::Task.new(name, options)
|
17
|
+
houdini_tasks[name.to_sym] = Houdini::Task.new(name.to_sym, options)
|
12
18
|
end
|
19
|
+
|
20
|
+
def houdini_tasks
|
21
|
+
@houdini_task ||= {}
|
22
|
+
end
|
23
|
+
|
13
24
|
end
|
14
25
|
|
15
26
|
def send_to_houdini(task_name)
|
16
|
-
|
27
|
+
houdini_task = self.class.houdini_tasks[task_name.to_sym]
|
17
28
|
params = {
|
18
29
|
:api_key => Houdini::KEY,
|
19
30
|
:identifier => houdini_task.name,
|
20
31
|
:price => houdini_task.price,
|
21
32
|
:title => houdini_task.title,
|
22
33
|
:form_html => generate_form_html(houdini_task.form_template),
|
23
|
-
:postback_url => houdini_postbacks_url(self.class.name, self.id,
|
34
|
+
:postback_url => houdini_postbacks_url(self.class.name, self.id, houdini_task.name, :host => Houdini::RAILS_HOST)
|
24
35
|
}
|
25
36
|
params[:matched_answers_size] = houdini_task.matched_answers_size if houdini_task.matched_answers_size
|
26
37
|
|
27
38
|
result = Houdini::Base.request(houdini_task.api, params)
|
28
39
|
|
29
|
-
call_after_submit
|
40
|
+
call_after_submit(task_name)
|
30
41
|
end
|
31
42
|
|
32
|
-
def process_postback(answer)
|
43
|
+
def process_postback(task_name, answer)
|
44
|
+
houdini_task = self.class.houdini_tasks[task_name.to_sym]
|
33
45
|
self.send(houdini_task.on_task_completion, answer)
|
34
46
|
end
|
35
47
|
|
36
|
-
def call_after_submit
|
48
|
+
def call_after_submit(task_name)
|
49
|
+
houdini_task = self.class.houdini_tasks[task_name.to_sym]
|
37
50
|
self.send(houdini_task.after_submit) if houdini_task.after_submit
|
38
51
|
end
|
39
52
|
|
@@ -7,7 +7,7 @@ describe "Postbacks" do
|
|
7
7
|
|
8
8
|
it "should receive postback" do
|
9
9
|
p = Post.create(:image_url => 'http://google.com', :flagged => nil)
|
10
|
-
post "houdini/post/#{p.id}/
|
10
|
+
post "houdini/post/#{p.id}/image_moderation/postbacks", :flagged => "yes"
|
11
11
|
|
12
12
|
p.reload
|
13
13
|
|
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: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 5
|
10
|
+
version: 0.1.5
|
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:
|
18
|
+
date: 2011-01-24 00:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|