houdini-rails3 0.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/.document +11 -0
- data/.gitignore +7 -0
- data/.rspec +2 -0
- data/Gemfile +20 -0
- data/Gemfile.lock +124 -0
- data/LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +54 -0
- data/VERSION +1 -0
- data/app/controllers/houdini/postbacks_controller.rb +12 -0
- data/config/routes.rb +8 -0
- data/houdini-rails3.gemspec +155 -0
- data/lib/houdini_rails/base.rb +31 -0
- data/lib/houdini_rails/engine.rb +4 -0
- data/lib/houdini_rails/model.rb +41 -0
- data/lib/houdini_rails/task.rb +17 -0
- data/lib/houdini_rails.rb +18 -0
- data/spec/controllers/houdini/postbacks_controller_spec.rb +0 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/models/post.rb +24 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/app/views/posts/houdini_template.html.erb +6 -0
- data/spec/dummy/config/application.rb +51 -0
- data/spec/dummy/config/boot.rb +10 -0
- data/spec/dummy/config/database.yml +22 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +26 -0
- data/spec/dummy/config/environments/production.rb +49 -0
- data/spec/dummy/config/environments/test.rb +35 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/inflections.rb +10 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +58 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/db/migrate/001_create_posts.rb +16 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +26 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/public/javascripts/application.js +2 -0
- data/spec/dummy/public/javascripts/controls.js +965 -0
- data/spec/dummy/public/javascripts/dragdrop.js +974 -0
- data/spec/dummy/public/javascripts/effects.js +1123 -0
- data/spec/dummy/public/javascripts/prototype.js +6001 -0
- data/spec/dummy/public/javascripts/rails.js +175 -0
- data/spec/dummy/public/stylesheets/.gitkeep +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/houdini_rails_spec.rb +7 -0
- data/spec/requests/postbacks_spec.rb +17 -0
- data/spec/spec_helper.rb +32 -0
- metadata +361 -0
    
        data/.document
    ADDED
    
    | @@ -0,0 +1,11 @@ | |
| 1 | 
            +
            # .document is used by rdoc and yard to know how to generate documentation 
         | 
| 2 | 
            +
            # for example, it can be used to control how rdoc gets built when you do `gem install foo`
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            README.rdoc
         | 
| 5 | 
            +
            lib/**/*.rb
         | 
| 6 | 
            +
            bin/*
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            # Files below this - are treated as 'extra files', and aren't parsed for ruby code
         | 
| 9 | 
            +
            - 
         | 
| 10 | 
            +
            features/**/*.feature
         | 
| 11 | 
            +
            LICENSE
         | 
    
        data/.gitignore
    ADDED
    
    
    
        data/.rspec
    ADDED
    
    
    
        data/Gemfile
    ADDED
    
    | @@ -0,0 +1,20 @@ | |
| 1 | 
            +
            source "http://rubygems.org"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            gem "rails", "3.0.0"
         | 
| 4 | 
            +
            gem "capybara", ">= 0.3.9"
         | 
| 5 | 
            +
            gem "sqlite3-ruby", :require => "sqlite3"
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            gem "tilt", "~> 1.1"
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            if RUBY_VERSION < '1.9'
         | 
| 10 | 
            +
              gem "ruby-debug", ">= 0.10.3"
         | 
| 11 | 
            +
            end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
             | 
| 14 | 
            +
            gem "rspec-rails", ">= 2.0.0.beta"
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            group :development do
         | 
| 17 | 
            +
              gem "bundler", "~> 1.0.0"
         | 
| 18 | 
            +
              gem "jeweler", "~> 1.5.0.pre3"
         | 
| 19 | 
            +
              gem "rcov", ">= 0"
         | 
| 20 | 
            +
            end
         | 
    
        data/Gemfile.lock
    ADDED
    
    | @@ -0,0 +1,124 @@ | |
| 1 | 
            +
            GEM
         | 
| 2 | 
            +
              remote: http://rubygems.org/
         | 
| 3 | 
            +
              specs:
         | 
| 4 | 
            +
                abstract (1.0.0)
         | 
| 5 | 
            +
                actionmailer (3.0.0)
         | 
| 6 | 
            +
                  actionpack (= 3.0.0)
         | 
| 7 | 
            +
                  mail (~> 2.2.5)
         | 
| 8 | 
            +
                actionpack (3.0.0)
         | 
| 9 | 
            +
                  activemodel (= 3.0.0)
         | 
| 10 | 
            +
                  activesupport (= 3.0.0)
         | 
| 11 | 
            +
                  builder (~> 2.1.2)
         | 
| 12 | 
            +
                  erubis (~> 2.6.6)
         | 
| 13 | 
            +
                  i18n (~> 0.4.1)
         | 
| 14 | 
            +
                  rack (~> 1.2.1)
         | 
| 15 | 
            +
                  rack-mount (~> 0.6.12)
         | 
| 16 | 
            +
                  rack-test (~> 0.5.4)
         | 
| 17 | 
            +
                  tzinfo (~> 0.3.23)
         | 
| 18 | 
            +
                activemodel (3.0.0)
         | 
| 19 | 
            +
                  activesupport (= 3.0.0)
         | 
| 20 | 
            +
                  builder (~> 2.1.2)
         | 
| 21 | 
            +
                  i18n (~> 0.4.1)
         | 
| 22 | 
            +
                activerecord (3.0.0)
         | 
| 23 | 
            +
                  activemodel (= 3.0.0)
         | 
| 24 | 
            +
                  activesupport (= 3.0.0)
         | 
| 25 | 
            +
                  arel (~> 1.0.0)
         | 
| 26 | 
            +
                  tzinfo (~> 0.3.23)
         | 
| 27 | 
            +
                activeresource (3.0.0)
         | 
| 28 | 
            +
                  activemodel (= 3.0.0)
         | 
| 29 | 
            +
                  activesupport (= 3.0.0)
         | 
| 30 | 
            +
                activesupport (3.0.0)
         | 
| 31 | 
            +
                arel (1.0.1)
         | 
| 32 | 
            +
                  activesupport (~> 3.0.0)
         | 
| 33 | 
            +
                builder (2.1.2)
         | 
| 34 | 
            +
                capybara (0.3.9)
         | 
| 35 | 
            +
                  culerity (>= 0.2.4)
         | 
| 36 | 
            +
                  mime-types (>= 1.16)
         | 
| 37 | 
            +
                  nokogiri (>= 1.3.3)
         | 
| 38 | 
            +
                  rack (>= 1.0.0)
         | 
| 39 | 
            +
                  rack-test (>= 0.5.4)
         | 
| 40 | 
            +
                  selenium-webdriver (>= 0.0.3)
         | 
| 41 | 
            +
                columnize (0.3.1)
         | 
| 42 | 
            +
                culerity (0.2.12)
         | 
| 43 | 
            +
                diff-lcs (1.1.2)
         | 
| 44 | 
            +
                erubis (2.6.6)
         | 
| 45 | 
            +
                  abstract (>= 1.0.0)
         | 
| 46 | 
            +
                ffi (0.6.3)
         | 
| 47 | 
            +
                  rake (>= 0.8.7)
         | 
| 48 | 
            +
                git (1.2.5)
         | 
| 49 | 
            +
                i18n (0.4.1)
         | 
| 50 | 
            +
                jeweler (1.5.0.pre3)
         | 
| 51 | 
            +
                  bundler (~> 1.0.0)
         | 
| 52 | 
            +
                  git (>= 1.2.5)
         | 
| 53 | 
            +
                  rake
         | 
| 54 | 
            +
                json_pure (1.4.6)
         | 
| 55 | 
            +
                linecache (0.43)
         | 
| 56 | 
            +
                mail (2.2.7)
         | 
| 57 | 
            +
                  activesupport (>= 2.3.6)
         | 
| 58 | 
            +
                  mime-types
         | 
| 59 | 
            +
                  treetop (>= 1.4.5)
         | 
| 60 | 
            +
                mime-types (1.16)
         | 
| 61 | 
            +
                nokogiri (1.4.3.1)
         | 
| 62 | 
            +
                polyglot (0.3.1)
         | 
| 63 | 
            +
                rack (1.2.1)
         | 
| 64 | 
            +
                rack-mount (0.6.13)
         | 
| 65 | 
            +
                  rack (>= 1.0.0)
         | 
| 66 | 
            +
                rack-test (0.5.6)
         | 
| 67 | 
            +
                  rack (>= 1.0)
         | 
| 68 | 
            +
                rails (3.0.0)
         | 
| 69 | 
            +
                  actionmailer (= 3.0.0)
         | 
| 70 | 
            +
                  actionpack (= 3.0.0)
         | 
| 71 | 
            +
                  activerecord (= 3.0.0)
         | 
| 72 | 
            +
                  activeresource (= 3.0.0)
         | 
| 73 | 
            +
                  activesupport (= 3.0.0)
         | 
| 74 | 
            +
                  bundler (~> 1.0.0)
         | 
| 75 | 
            +
                  railties (= 3.0.0)
         | 
| 76 | 
            +
                railties (3.0.0)
         | 
| 77 | 
            +
                  actionpack (= 3.0.0)
         | 
| 78 | 
            +
                  activesupport (= 3.0.0)
         | 
| 79 | 
            +
                  rake (>= 0.8.4)
         | 
| 80 | 
            +
                  thor (~> 0.14.0)
         | 
| 81 | 
            +
                rake (0.8.7)
         | 
| 82 | 
            +
                rcov (0.9.9)
         | 
| 83 | 
            +
                rspec (2.0.0.rc)
         | 
| 84 | 
            +
                  rspec-core (= 2.0.0.rc)
         | 
| 85 | 
            +
                  rspec-expectations (= 2.0.0.rc)
         | 
| 86 | 
            +
                  rspec-mocks (= 2.0.0.rc)
         | 
| 87 | 
            +
                rspec-core (2.0.0.rc)
         | 
| 88 | 
            +
                rspec-expectations (2.0.0.rc)
         | 
| 89 | 
            +
                  diff-lcs (>= 1.1.2)
         | 
| 90 | 
            +
                rspec-mocks (2.0.0.rc)
         | 
| 91 | 
            +
                  rspec-core (= 2.0.0.rc)
         | 
| 92 | 
            +
                  rspec-expectations (= 2.0.0.rc)
         | 
| 93 | 
            +
                rspec-rails (2.0.0.rc)
         | 
| 94 | 
            +
                  rspec (= 2.0.0.rc)
         | 
| 95 | 
            +
                ruby-debug (0.10.3)
         | 
| 96 | 
            +
                  columnize (>= 0.1)
         | 
| 97 | 
            +
                  ruby-debug-base (~> 0.10.3.0)
         | 
| 98 | 
            +
                ruby-debug-base (0.10.3)
         | 
| 99 | 
            +
                  linecache (>= 0.3)
         | 
| 100 | 
            +
                rubyzip (0.9.4)
         | 
| 101 | 
            +
                selenium-webdriver (0.0.28)
         | 
| 102 | 
            +
                  ffi (>= 0.6.1)
         | 
| 103 | 
            +
                  json_pure
         | 
| 104 | 
            +
                  rubyzip
         | 
| 105 | 
            +
                sqlite3-ruby (1.3.1)
         | 
| 106 | 
            +
                thor (0.14.3)
         | 
| 107 | 
            +
                tilt (1.1)
         | 
| 108 | 
            +
                treetop (1.4.8)
         | 
| 109 | 
            +
                  polyglot (>= 0.3.1)
         | 
| 110 | 
            +
                tzinfo (0.3.23)
         | 
| 111 | 
            +
             | 
| 112 | 
            +
            PLATFORMS
         | 
| 113 | 
            +
              ruby
         | 
| 114 | 
            +
             | 
| 115 | 
            +
            DEPENDENCIES
         | 
| 116 | 
            +
              bundler (~> 1.0.0)
         | 
| 117 | 
            +
              capybara (>= 0.3.9)
         | 
| 118 | 
            +
              jeweler (~> 1.5.0.pre3)
         | 
| 119 | 
            +
              rails (= 3.0.0)
         | 
| 120 | 
            +
              rcov
         | 
| 121 | 
            +
              rspec-rails (>= 2.0.0.beta)
         | 
| 122 | 
            +
              ruby-debug (>= 0.10.3)
         | 
| 123 | 
            +
              sqlite3-ruby
         | 
| 124 | 
            +
              tilt (~> 1.1)
         | 
    
        data/LICENSE
    ADDED
    
    | @@ -0,0 +1,20 @@ | |
| 1 | 
            +
            Copyright (c) 2010 Chris Conley
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            Permission is hereby granted, free of charge, to any person obtaining
         | 
| 4 | 
            +
            a copy of this software and associated documentation files (the
         | 
| 5 | 
            +
            "Software"), to deal in the Software without restriction, including
         | 
| 6 | 
            +
            without limitation the rights to use, copy, modify, merge, publish,
         | 
| 7 | 
            +
            distribute, sublicense, and/or sell copies of the Software, and to
         | 
| 8 | 
            +
            permit persons to whom the Software is furnished to do so, subject to
         | 
| 9 | 
            +
            the following conditions:
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            The above copyright notice and this permission notice shall be
         | 
| 12 | 
            +
            included in all copies or substantial portions of the Software.
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         | 
| 15 | 
            +
            EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         | 
| 16 | 
            +
            MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         | 
| 17 | 
            +
            NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
         | 
| 18 | 
            +
            LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
         | 
| 19 | 
            +
            OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
         | 
| 20 | 
            +
            WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         | 
    
        data/README.rdoc
    ADDED
    
    
    
        data/Rakefile
    ADDED
    
    | @@ -0,0 +1,54 @@ | |
| 1 | 
            +
            require 'rubygems'
         | 
| 2 | 
            +
            require 'bundler'
         | 
| 3 | 
            +
            begin
         | 
| 4 | 
            +
              Bundler.setup(:default, :development)
         | 
| 5 | 
            +
            rescue Bundler::BundlerError => e
         | 
| 6 | 
            +
              $stderr.puts e.message
         | 
| 7 | 
            +
              $stderr.puts "Run `bundle install` to install missing gems"
         | 
| 8 | 
            +
              exit e.status_code
         | 
| 9 | 
            +
            end
         | 
| 10 | 
            +
            require 'rake'
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            require 'jeweler'
         | 
| 13 | 
            +
            Jeweler::Tasks.new do |gem|
         | 
| 14 | 
            +
              # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
         | 
| 15 | 
            +
              gem.name = "houdini-rails3"
         | 
| 16 | 
            +
              gem.summary = %Q{Rails 3 Engine for using the Houdini Mechanical Turk API}
         | 
| 17 | 
            +
              gem.description = %Q{Rails 3 Engine for using the Houdini Mechanical Turk API}
         | 
| 18 | 
            +
              gem.email = "chris@chrisconley.me"
         | 
| 19 | 
            +
              gem.homepage = "http://github.com/chrisconley/houdini-rails3"
         | 
| 20 | 
            +
              gem.authors = ["Chris Conley"]
         | 
| 21 | 
            +
              # Include your dependencies below. Runtime dependencies are required when using your gem,
         | 
| 22 | 
            +
              # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
         | 
| 23 | 
            +
              #  spec.add_runtime_dependency 'jabber4r', '> 0.1'
         | 
| 24 | 
            +
              #  spec.add_development_dependency 'rspec', '> 1.2.3'
         | 
| 25 | 
            +
              gem.add_runtime_dependency "tilt", "~> 1.1"
         | 
| 26 | 
            +
              gem.add_development_dependency "rspec", ">= 2.0.0.beta.19"
         | 
| 27 | 
            +
              gem.add_development_dependency "bundler", "~> 1.0.0"
         | 
| 28 | 
            +
              gem.add_development_dependency "jeweler", "~> 1.5.0.pre3"
         | 
| 29 | 
            +
              gem.add_development_dependency "rcov", ">= 0"
         | 
| 30 | 
            +
            end
         | 
| 31 | 
            +
            Jeweler::RubygemsDotOrgTasks.new
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            require 'rspec/core'
         | 
| 34 | 
            +
            require 'rspec/core/rake_task'
         | 
| 35 | 
            +
            RSpec::Core::RakeTask.new(:spec) do |spec|
         | 
| 36 | 
            +
              spec.pattern = FileList['spec/**/*_spec.rb']
         | 
| 37 | 
            +
            end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            RSpec::Core::RakeTask.new(:rcov) do |spec|
         | 
| 40 | 
            +
              spec.pattern = 'spec/**/*_spec.rb'
         | 
| 41 | 
            +
              spec.rcov = true
         | 
| 42 | 
            +
            end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            task :default => :spec
         | 
| 45 | 
            +
             | 
| 46 | 
            +
            require 'rake/rdoctask'
         | 
| 47 | 
            +
            Rake::RDocTask.new do |rdoc|
         | 
| 48 | 
            +
              version = File.exist?('VERSION') ? File.read('VERSION') : ""
         | 
| 49 | 
            +
             | 
| 50 | 
            +
              rdoc.rdoc_dir = 'rdoc'
         | 
| 51 | 
            +
              rdoc.title = "houdini-rails3 #{version}"
         | 
| 52 | 
            +
              rdoc.rdoc_files.include('README*')
         | 
| 53 | 
            +
              rdoc.rdoc_files.include('lib/**/*.rb')
         | 
| 54 | 
            +
            end
         | 
    
        data/VERSION
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            0.1.0
         | 
| @@ -0,0 +1,12 @@ | |
| 1 | 
            +
            class Houdini::PostbacksController < ApplicationController
         | 
| 2 | 
            +
              protect_from_forgery :except => [:create]
         | 
| 3 | 
            +
              def create
         | 
| 4 | 
            +
                object_class = params[:object_class].classify.constantize
         | 
| 5 | 
            +
                object = object_class.find(params[:object_id])
         | 
| 6 | 
            +
                if object.process_postback(HashWithIndifferentAccess.new request.request_parameters)
         | 
| 7 | 
            +
                  render :json => {:success => true}
         | 
| 8 | 
            +
                else
         | 
| 9 | 
            +
                  render :json => {:success => false}, :status => 422
         | 
| 10 | 
            +
                end
         | 
| 11 | 
            +
              end
         | 
| 12 | 
            +
            end
         | 
    
        data/config/routes.rb
    ADDED
    
    
| @@ -0,0 +1,155 @@ | |
| 1 | 
            +
            # Generated by jeweler
         | 
| 2 | 
            +
            # DO NOT EDIT THIS FILE DIRECTLY
         | 
| 3 | 
            +
            # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
         | 
| 4 | 
            +
            # -*- encoding: utf-8 -*-
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            Gem::Specification.new do |s|
         | 
| 7 | 
            +
              s.name = %q{houdini-rails3}
         | 
| 8 | 
            +
              s.version = "0.1.0"
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 11 | 
            +
              s.authors = ["Chris Conley"]
         | 
| 12 | 
            +
              s.date = %q{2010-10-08}
         | 
| 13 | 
            +
              s.description = %q{Rails 3 Engine for using the Houdini Mechanical Turk API}
         | 
| 14 | 
            +
              s.email = %q{chris@chrisconley.me}
         | 
| 15 | 
            +
              s.extra_rdoc_files = [
         | 
| 16 | 
            +
                "LICENSE",
         | 
| 17 | 
            +
                "README.rdoc"
         | 
| 18 | 
            +
              ]
         | 
| 19 | 
            +
              s.files = [
         | 
| 20 | 
            +
                ".document",
         | 
| 21 | 
            +
                ".gitignore",
         | 
| 22 | 
            +
                ".rspec",
         | 
| 23 | 
            +
                "Gemfile",
         | 
| 24 | 
            +
                "Gemfile.lock",
         | 
| 25 | 
            +
                "LICENSE",
         | 
| 26 | 
            +
                "README.rdoc",
         | 
| 27 | 
            +
                "Rakefile",
         | 
| 28 | 
            +
                "VERSION",
         | 
| 29 | 
            +
                "app/controllers/houdini/postbacks_controller.rb",
         | 
| 30 | 
            +
                "config/routes.rb",
         | 
| 31 | 
            +
                "houdini-rails3.gemspec",
         | 
| 32 | 
            +
                "lib/houdini_rails.rb",
         | 
| 33 | 
            +
                "lib/houdini_rails/base.rb",
         | 
| 34 | 
            +
                "lib/houdini_rails/engine.rb",
         | 
| 35 | 
            +
                "lib/houdini_rails/model.rb",
         | 
| 36 | 
            +
                "lib/houdini_rails/task.rb",
         | 
| 37 | 
            +
                "spec/controllers/houdini/postbacks_controller_spec.rb",
         | 
| 38 | 
            +
                "spec/dummy/Rakefile",
         | 
| 39 | 
            +
                "spec/dummy/app/controllers/application_controller.rb",
         | 
| 40 | 
            +
                "spec/dummy/app/helpers/application_helper.rb",
         | 
| 41 | 
            +
                "spec/dummy/app/models/post.rb",
         | 
| 42 | 
            +
                "spec/dummy/app/views/layouts/application.html.erb",
         | 
| 43 | 
            +
                "spec/dummy/app/views/posts/houdini_template.html.erb",
         | 
| 44 | 
            +
                "spec/dummy/config.ru",
         | 
| 45 | 
            +
                "spec/dummy/config/application.rb",
         | 
| 46 | 
            +
                "spec/dummy/config/boot.rb",
         | 
| 47 | 
            +
                "spec/dummy/config/database.yml",
         | 
| 48 | 
            +
                "spec/dummy/config/environment.rb",
         | 
| 49 | 
            +
                "spec/dummy/config/environments/development.rb",
         | 
| 50 | 
            +
                "spec/dummy/config/environments/production.rb",
         | 
| 51 | 
            +
                "spec/dummy/config/environments/test.rb",
         | 
| 52 | 
            +
                "spec/dummy/config/initializers/backtrace_silencers.rb",
         | 
| 53 | 
            +
                "spec/dummy/config/initializers/inflections.rb",
         | 
| 54 | 
            +
                "spec/dummy/config/initializers/mime_types.rb",
         | 
| 55 | 
            +
                "spec/dummy/config/initializers/secret_token.rb",
         | 
| 56 | 
            +
                "spec/dummy/config/initializers/session_store.rb",
         | 
| 57 | 
            +
                "spec/dummy/config/locales/en.yml",
         | 
| 58 | 
            +
                "spec/dummy/config/routes.rb",
         | 
| 59 | 
            +
                "spec/dummy/db/migrate/001_create_posts.rb",
         | 
| 60 | 
            +
                "spec/dummy/public/404.html",
         | 
| 61 | 
            +
                "spec/dummy/public/422.html",
         | 
| 62 | 
            +
                "spec/dummy/public/500.html",
         | 
| 63 | 
            +
                "spec/dummy/public/favicon.ico",
         | 
| 64 | 
            +
                "spec/dummy/public/javascripts/application.js",
         | 
| 65 | 
            +
                "spec/dummy/public/javascripts/controls.js",
         | 
| 66 | 
            +
                "spec/dummy/public/javascripts/dragdrop.js",
         | 
| 67 | 
            +
                "spec/dummy/public/javascripts/effects.js",
         | 
| 68 | 
            +
                "spec/dummy/public/javascripts/prototype.js",
         | 
| 69 | 
            +
                "spec/dummy/public/javascripts/rails.js",
         | 
| 70 | 
            +
                "spec/dummy/public/stylesheets/.gitkeep",
         | 
| 71 | 
            +
                "spec/dummy/script/rails",
         | 
| 72 | 
            +
                "spec/houdini_rails_spec.rb",
         | 
| 73 | 
            +
                "spec/requests/postbacks_spec.rb",
         | 
| 74 | 
            +
                "spec/spec_helper.rb"
         | 
| 75 | 
            +
              ]
         | 
| 76 | 
            +
              s.homepage = %q{http://github.com/chrisconley/houdini-rails3}
         | 
| 77 | 
            +
              s.require_paths = ["lib"]
         | 
| 78 | 
            +
              s.rubygems_version = %q{1.3.7}
         | 
| 79 | 
            +
              s.summary = %q{Rails 3 Engine for using the Houdini Mechanical Turk API}
         | 
| 80 | 
            +
              s.test_files = [
         | 
| 81 | 
            +
                "spec/controllers/houdini/postbacks_controller_spec.rb",
         | 
| 82 | 
            +
                "spec/dummy/app/controllers/application_controller.rb",
         | 
| 83 | 
            +
                "spec/dummy/app/helpers/application_helper.rb",
         | 
| 84 | 
            +
                "spec/dummy/app/models/post.rb",
         | 
| 85 | 
            +
                "spec/dummy/config/application.rb",
         | 
| 86 | 
            +
                "spec/dummy/config/boot.rb",
         | 
| 87 | 
            +
                "spec/dummy/config/environment.rb",
         | 
| 88 | 
            +
                "spec/dummy/config/environments/development.rb",
         | 
| 89 | 
            +
                "spec/dummy/config/environments/production.rb",
         | 
| 90 | 
            +
                "spec/dummy/config/environments/test.rb",
         | 
| 91 | 
            +
                "spec/dummy/config/initializers/backtrace_silencers.rb",
         | 
| 92 | 
            +
                "spec/dummy/config/initializers/inflections.rb",
         | 
| 93 | 
            +
                "spec/dummy/config/initializers/mime_types.rb",
         | 
| 94 | 
            +
                "spec/dummy/config/initializers/secret_token.rb",
         | 
| 95 | 
            +
                "spec/dummy/config/initializers/session_store.rb",
         | 
| 96 | 
            +
                "spec/dummy/config/routes.rb",
         | 
| 97 | 
            +
                "spec/dummy/db/migrate/001_create_posts.rb",
         | 
| 98 | 
            +
                "spec/houdini_rails_spec.rb",
         | 
| 99 | 
            +
                "spec/requests/postbacks_spec.rb",
         | 
| 100 | 
            +
                "spec/spec_helper.rb"
         | 
| 101 | 
            +
              ]
         | 
| 102 | 
            +
             | 
| 103 | 
            +
              if s.respond_to? :specification_version then
         | 
| 104 | 
            +
                current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
         | 
| 105 | 
            +
                s.specification_version = 3
         | 
| 106 | 
            +
             | 
| 107 | 
            +
                if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
         | 
| 108 | 
            +
                  s.add_runtime_dependency(%q<rails>, ["= 3.0.0"])
         | 
| 109 | 
            +
                  s.add_runtime_dependency(%q<capybara>, [">= 0.3.9"])
         | 
| 110 | 
            +
                  s.add_runtime_dependency(%q<sqlite3-ruby>, [">= 0"])
         | 
| 111 | 
            +
                  s.add_runtime_dependency(%q<tilt>, ["~> 1.1"])
         | 
| 112 | 
            +
                  s.add_runtime_dependency(%q<ruby-debug>, [">= 0.10.3"])
         | 
| 113 | 
            +
                  s.add_runtime_dependency(%q<rspec-rails>, [">= 2.0.0.beta"])
         | 
| 114 | 
            +
                  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
         | 
| 115 | 
            +
                  s.add_development_dependency(%q<jeweler>, ["~> 1.5.0.pre3"])
         | 
| 116 | 
            +
                  s.add_development_dependency(%q<rcov>, [">= 0"])
         | 
| 117 | 
            +
                  s.add_runtime_dependency(%q<tilt>, ["~> 1.1"])
         | 
| 118 | 
            +
                  s.add_development_dependency(%q<rspec>, [">= 2.0.0.beta.19"])
         | 
| 119 | 
            +
                  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
         | 
| 120 | 
            +
                  s.add_development_dependency(%q<jeweler>, ["~> 1.5.0.pre3"])
         | 
| 121 | 
            +
                  s.add_development_dependency(%q<rcov>, [">= 0"])
         | 
| 122 | 
            +
                else
         | 
| 123 | 
            +
                  s.add_dependency(%q<rails>, ["= 3.0.0"])
         | 
| 124 | 
            +
                  s.add_dependency(%q<capybara>, [">= 0.3.9"])
         | 
| 125 | 
            +
                  s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
         | 
| 126 | 
            +
                  s.add_dependency(%q<tilt>, ["~> 1.1"])
         | 
| 127 | 
            +
                  s.add_dependency(%q<ruby-debug>, [">= 0.10.3"])
         | 
| 128 | 
            +
                  s.add_dependency(%q<rspec-rails>, [">= 2.0.0.beta"])
         | 
| 129 | 
            +
                  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
         | 
| 130 | 
            +
                  s.add_dependency(%q<jeweler>, ["~> 1.5.0.pre3"])
         | 
| 131 | 
            +
                  s.add_dependency(%q<rcov>, [">= 0"])
         | 
| 132 | 
            +
                  s.add_dependency(%q<tilt>, ["~> 1.1"])
         | 
| 133 | 
            +
                  s.add_dependency(%q<rspec>, [">= 2.0.0.beta.19"])
         | 
| 134 | 
            +
                  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
         | 
| 135 | 
            +
                  s.add_dependency(%q<jeweler>, ["~> 1.5.0.pre3"])
         | 
| 136 | 
            +
                  s.add_dependency(%q<rcov>, [">= 0"])
         | 
| 137 | 
            +
                end
         | 
| 138 | 
            +
              else
         | 
| 139 | 
            +
                s.add_dependency(%q<rails>, ["= 3.0.0"])
         | 
| 140 | 
            +
                s.add_dependency(%q<capybara>, [">= 0.3.9"])
         | 
| 141 | 
            +
                s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
         | 
| 142 | 
            +
                s.add_dependency(%q<tilt>, ["~> 1.1"])
         | 
| 143 | 
            +
                s.add_dependency(%q<ruby-debug>, [">= 0.10.3"])
         | 
| 144 | 
            +
                s.add_dependency(%q<rspec-rails>, [">= 2.0.0.beta"])
         | 
| 145 | 
            +
                s.add_dependency(%q<bundler>, ["~> 1.0.0"])
         | 
| 146 | 
            +
                s.add_dependency(%q<jeweler>, ["~> 1.5.0.pre3"])
         | 
| 147 | 
            +
                s.add_dependency(%q<rcov>, [">= 0"])
         | 
| 148 | 
            +
                s.add_dependency(%q<tilt>, ["~> 1.1"])
         | 
| 149 | 
            +
                s.add_dependency(%q<rspec>, [">= 2.0.0.beta.19"])
         | 
| 150 | 
            +
                s.add_dependency(%q<bundler>, ["~> 1.0.0"])
         | 
| 151 | 
            +
                s.add_dependency(%q<jeweler>, ["~> 1.5.0.pre3"])
         | 
| 152 | 
            +
                s.add_dependency(%q<rcov>, [">= 0"])
         | 
| 153 | 
            +
              end
         | 
| 154 | 
            +
            end
         | 
| 155 | 
            +
             | 
| @@ -0,0 +1,31 @@ | |
| 1 | 
            +
            module Houdini
         | 
| 2 | 
            +
              Undefined = Class.new(NameError)
         | 
| 3 | 
            +
              RequestError = Class.new(NameError)
         | 
| 4 | 
            +
              AuthenticationError = Class.new(NameError)
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              class Base
         | 
| 7 | 
            +
                def self.request(api, params)
         | 
| 8 | 
            +
                  validate_constants
         | 
| 9 | 
            +
                  return ["200", '{success:"true"}'] if HOST == 'test'
         | 
| 10 | 
            +
                  url = URI.parse("http://#{HOST}/api/v0/#{api}/tasks/")
         | 
| 11 | 
            +
                  response, body = Net::HTTP.post_form(url, params)
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                  raise(AuthenticationError, "invalid api key") if response.code == '403'
         | 
| 14 | 
            +
                  if response.code != "200"
         | 
| 15 | 
            +
                    raise RequestError, "The request to houdini failed with code #{response.code}: #{body}"
         | 
| 16 | 
            +
                  end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                  [response, body]
         | 
| 19 | 
            +
                end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                private
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                def self.validate_constants
         | 
| 24 | 
            +
                  raise Undefined, "Houdini::KEY is not defined"  if Houdini::KEY.blank?
         | 
| 25 | 
            +
                  raise Undefined, "Houdini::HOST is not defined" if Houdini::HOST.blank?
         | 
| 26 | 
            +
                  raise Undefined, "Houdini::RAILS_HOST is not defined" if Houdini::RAILS_HOST.blank?
         | 
| 27 | 
            +
                end
         | 
| 28 | 
            +
              end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
             | 
| 31 | 
            +
            end
         |