houdini-rails3 0.1.4 → 0.1.5
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/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
|