rturk 1.0.5 → 2.0.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/.gitmodules +3 -0
 - data/.yardoc +0 -0
 - data/README.markdown +49 -29
 - data/Rakefile +53 -0
 - data/TODO.markdown +3 -0
 - data/VERSION +1 -1
 - data/examples/blank_slate.rb +21 -4
 - data/examples/create_hit.rb +19 -0
 - data/examples/newtweet.html +0 -1
 - data/examples/review_answer.rb +18 -5
 - data/lib/rturk.rb +33 -6
 - data/lib/rturk/adapters/answers.rb +38 -0
 - data/lib/rturk/adapters/assignment.rb +75 -0
 - data/lib/rturk/adapters/hit.rb +97 -0
 - data/lib/rturk/builders/qualification_builder.rb +68 -0
 - data/lib/rturk/builders/qualifications_builder.rb +43 -0
 - data/lib/rturk/builders/question_builder.rb +51 -0
 - data/lib/rturk/errors.rb +5 -0
 - data/lib/rturk/logger.rb +20 -0
 - data/lib/rturk/macros.rb +35 -0
 - data/lib/rturk/operation.rb +86 -0
 - data/lib/rturk/operations/approve_assignment.rb +28 -0
 - data/lib/rturk/operations/create_hit.rb +77 -0
 - data/lib/rturk/operations/disable_hit.rb +19 -0
 - data/lib/rturk/operations/dispose_hit.rb +19 -0
 - data/lib/rturk/operations/force_expire_hit.rb +18 -0
 - data/lib/rturk/operations/get_account_balance.rb +15 -0
 - data/lib/rturk/operations/get_assignments_for_hit.rb +24 -0
 - data/lib/rturk/operations/get_hit.rb +21 -0
 - data/lib/rturk/operations/get_reviewable_hits.rb +23 -0
 - data/lib/rturk/operations/grant_bonus.rb +26 -0
 - data/lib/rturk/operations/reject_assignment.rb +23 -0
 - data/lib/rturk/requester.rb +58 -76
 - data/lib/rturk/response.rb +58 -0
 - data/lib/rturk/responses/create_hit_response.rb +33 -0
 - data/lib/rturk/responses/get_account_balance_response.rb +11 -0
 - data/lib/rturk/responses/get_assignments_for_hit_response.rb +43 -0
 - data/lib/rturk/responses/get_hit_response.rb +80 -0
 - data/lib/rturk/responses/get_reviewable_hits_response.rb +33 -0
 - data/lib/rturk/utilities.rb +19 -1
 - data/lib/rturk/xml_utilities.rb +23 -0
 - data/rturk.gemspec +143 -0
 - data/spec/adapters/answers_spec.rb +27 -0
 - data/spec/adapters/assignment_spec.rb +0 -0
 - data/spec/adapters/hit_spec.rb +46 -0
 - data/spec/builders/qualification_spec.rb +53 -0
 - data/spec/builders/qualifications_spec.rb +30 -0
 - data/spec/builders/question_spec.rb +46 -0
 - data/spec/fake_responses/approve_assignment.xml +5 -0
 - data/spec/fake_responses/create_hit.xml +12 -0
 - data/spec/fake_responses/disable_hit.xml +5 -0
 - data/spec/fake_responses/dispose_hit.xml +5 -0
 - data/spec/fake_responses/force_expire_hit.xml +5 -0
 - data/spec/fake_responses/get_account_balance.xml +10 -0
 - data/spec/fake_responses/get_assignments.xml +35 -0
 - data/spec/fake_responses/get_hit.xml +41 -0
 - data/spec/fake_responses/get_reviewable_hits.xml +17 -0
 - data/spec/fake_responses/grant_bonus.xml +5 -0
 - data/spec/fake_responses/invalid_credentials.xml +12 -0
 - data/spec/fake_responses/reject_assignment.xml +5 -0
 - data/spec/operations/approve_assignment_spec.rb +27 -0
 - data/spec/operations/create_hit_spec.rb +66 -0
 - data/spec/operations/disable_hit_spec.rb +26 -0
 - data/spec/operations/dispose_hit_spec.rb +26 -0
 - data/spec/operations/force_expire_hit_spec.rb +26 -0
 - data/spec/operations/get_account_balance_spec.rb +15 -0
 - data/spec/operations/get_assignments_spec.rb +26 -0
 - data/spec/operations/get_hit_spec.rb +18 -0
 - data/spec/operations/get_reviewable_hits_spec.rb +0 -0
 - data/spec/operations/grant_bonus_spec.rb +32 -0
 - data/spec/operations/reject_assignment_spec.rb +26 -0
 - data/spec/requester_spec.rb +7 -18
 - data/spec/response_spec.rb +48 -0
 - data/spec/rturk_spec.rb +27 -0
 - data/spec/spec_helper.rb +28 -3
 - data/spec/tmp +2 -0
 - data/spec/xml_parse_spec.rb +32 -0
 - metadata +94 -34
 - data/examples/external_page.rb +0 -33
 - data/lib/rturk/answer.rb +0 -20
 - data/lib/rturk/custom_operations.rb +0 -80
 - data/lib/rturk/external_question_builder.rb +0 -22
 - data/spec/answer_spec.rb +0 -24
 - data/spec/external_question_spec.rb +0 -27
 
    
        data/examples/external_page.rb
    DELETED
    
    | 
         @@ -1,33 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require '../lib/rturk'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            props = {:Title=>"Write a twitter update", 
         
     | 
| 
       4 
     | 
    
         
            -
                     :MaxAssignments=>1, :LifetimeInSeconds=>3600, 
         
     | 
| 
       5 
     | 
    
         
            -
                     :Reward=>{:Amount=>0.10, :CurrencyCode=>"USD"}, 
         
     | 
| 
       6 
     | 
    
         
            -
                     :Keywords=>"twitter, blogging, writing, english", 
         
     | 
| 
       7 
     | 
    
         
            -
                     :Description=>"Simply write a twitter update for me",
         
     | 
| 
       8 
     | 
    
         
            -
                     :RequesterAnnotation=>"OptionalNote",
         
     | 
| 
       9 
     | 
    
         
            -
                     :AssignmentDurationInSeconds=>3600, :AutoApprovalDelayInSeconds=>3600, 
         
     | 
| 
       10 
     | 
    
         
            -
                     :QualificationRequirement=>[{
         
     | 
| 
       11 
     | 
    
         
            -
                       :QualificationTypeId=>"000000000000000000L0", 
         
     | 
| 
       12 
     | 
    
         
            -
                       :IntegerValue=>90, 
         
     | 
| 
       13 
     | 
    
         
            -
                       :Comparator=>"GreaterThan", 
         
     | 
| 
       14 
     | 
    
         
            -
                       :RequiredToPreview=>"false"
         
     | 
| 
       15 
     | 
    
         
            -
                       }]
         
     | 
| 
       16 
     | 
    
         
            -
                    }
         
     | 
| 
       17 
     | 
    
         
            -
            root = File.expand_path(File.dirname(__FILE__))
         
     | 
| 
       18 
     | 
    
         
            -
            aws = YAML.load(File.open(File.join(root, 'mturk.yml')))
         
     | 
| 
       19 
     | 
    
         
            -
            @turk = RTurk::Requester.new(aws['AWSAccessKeyId'], aws['AWSAccessKey'], :sandbox => true)
         
     | 
| 
       20 
     | 
    
         
            -
            page = RTurk::ExternalQuestionBuilder.build("http://s3.amazonaws.com/mpercival.com/newtweet.html", :id => 'foo')
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
            puts "*" * 80
         
     | 
| 
       23 
     | 
    
         
            -
            puts "This is the XML created for the external page question \n #{page}"
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
            puts "*" * 80
         
     | 
| 
       26 
     | 
    
         
            -
            hit = @turk.create_hit(props, page)
         
     | 
| 
       27 
     | 
    
         
            -
            puts "And the response from CreateHIT operation"
         
     | 
| 
       28 
     | 
    
         
            -
            p hit
         
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
            puts "*" * 80
         
     | 
| 
       31 
     | 
    
         
            -
            puts "Created a new HIT which can be found at #{@turk.url_for_hit_type(hit['HIT']['HITTypeId'])}"
         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
            File.open(File.join(root ,"last_hit"), "w") {|f| f.write(hit['HIT']['HITId']) }
         
     | 
    
        data/lib/rturk/answer.rb
    DELETED
    
    | 
         @@ -1,20 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            module RTurk
         
     | 
| 
       2 
     | 
    
         
            -
              class Answer
         
     | 
| 
       3 
     | 
    
         
            -
                
         
     | 
| 
       4 
     | 
    
         
            -
                def self.parse(xml)
         
     | 
| 
       5 
     | 
    
         
            -
                  answer = XmlSimple.xml_in(xml, {'ForceArray' => false})
         
     | 
| 
       6 
     | 
    
         
            -
                  response = {}
         
     | 
| 
       7 
     | 
    
         
            -
                  answers = answer['Answer']
         
     | 
| 
       8 
     | 
    
         
            -
                  answers = Array.new(1) { answers } unless answers.instance_of? Array
         
     | 
| 
       9 
     | 
    
         
            -
                  answers.each do |a|
         
     | 
| 
       10 
     | 
    
         
            -
                    question = a['QuestionIdentifier']
         
     | 
| 
       11 
     | 
    
         
            -
                    a.delete('QuestionIdentifier')
         
     | 
| 
       12 
     | 
    
         
            -
                    a.each_value do |v|
         
     | 
| 
       13 
     | 
    
         
            -
                      response[question] = v
         
     | 
| 
       14 
     | 
    
         
            -
                    end
         
     | 
| 
       15 
     | 
    
         
            -
                  end
         
     | 
| 
       16 
     | 
    
         
            -
                  response
         
     | 
| 
       17 
     | 
    
         
            -
                end
         
     | 
| 
       18 
     | 
    
         
            -
                
         
     | 
| 
       19 
     | 
    
         
            -
              end
         
     | 
| 
       20 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,80 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            module RTurk::CustomOperations
         
     | 
| 
       2 
     | 
    
         
            -
              # Overides createHIT to allow for easier entry
         
     | 
| 
       3 
     | 
    
         
            -
              def create_hit(props, page)
         
     | 
| 
       4 
     | 
    
         
            -
                props = format_props(props)
         
     | 
| 
       5 
     | 
    
         
            -
                props = props.merge(:Question => page, :Operation => 'CreateHIT')
         
     | 
| 
       6 
     | 
    
         
            -
                request(props)
         
     | 
| 
       7 
     | 
    
         
            -
              end
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
              # Attempt to expire hit, then approve assignments, and finally dispose of
         
     | 
| 
       10 
     | 
    
         
            -
              def kill_hit(hit_id)
         
     | 
| 
       11 
     | 
    
         
            -
                forceExpireHIT(:HITId => hit_id)
         
     | 
| 
       12 
     | 
    
         
            -
                get_assignments_for_hit(hit_id).each do |assignment|
         
     | 
| 
       13 
     | 
    
         
            -
                  approveAssignment(:AssignmentId => assignment[:AssignmentId])
         
     | 
| 
       14 
     | 
    
         
            -
                end
         
     | 
| 
       15 
     | 
    
         
            -
                disposeHIT(:HITId => hit_id)
         
     | 
| 
       16 
     | 
    
         
            -
              end
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
              # Wipe out all HIT's associated with this account
         
     | 
| 
       19 
     | 
    
         
            -
              def blank_slate
         
     | 
| 
       20 
     | 
    
         
            -
                search_response = searchHITs(:PageSize => 100)
         
     | 
| 
       21 
     | 
    
         
            -
                if search_results = search_response['SearchHITsResult']['HIT']
         
     | 
| 
       22 
     | 
    
         
            -
                  search_results.each do |hit|
         
     | 
| 
       23 
     | 
    
         
            -
                    kill_hit(hit['HITId'])
         
     | 
| 
       24 
     | 
    
         
            -
                  end
         
     | 
| 
       25 
     | 
    
         
            -
                end
         
     | 
| 
       26 
     | 
    
         
            -
              end
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
              def get_assignments_for_hit(hit)
         
     | 
| 
       30 
     | 
    
         
            -
                response = request(:Operation => 'GetAssignmentsForHIT', :HITId => hit)
         
     | 
| 
       31 
     | 
    
         
            -
                assignments = []
         
     | 
| 
       32 
     | 
    
         
            -
                if response['GetAssignmentsForHITResult']['Assignment'].instance_of?(Array)
         
     | 
| 
       33 
     | 
    
         
            -
                  response['GetAssignmentsForHITResult']['Assignment'].each do |assignment|
         
     | 
| 
       34 
     | 
    
         
            -
                    answer = RTurk::Answer.parse(assignment['Answer'])
         
     | 
| 
       35 
     | 
    
         
            -
                    assignment.delete('Answer')
         
     | 
| 
       36 
     | 
    
         
            -
                    assignment['Answer'] = answer
         
     | 
| 
       37 
     | 
    
         
            -
                    assignments << assignment
         
     | 
| 
       38 
     | 
    
         
            -
                  end
         
     | 
| 
       39 
     | 
    
         
            -
                else
         
     | 
| 
       40 
     | 
    
         
            -
                  if assignment = response['GetAssignmentsForHITResult']['Assignment']
         
     | 
| 
       41 
     | 
    
         
            -
                    answer = RTurk::Answer.parse(response['GetAssignmentsForHITResult']['Assignment']['Answer'])
         
     | 
| 
       42 
     | 
    
         
            -
                    assignment.delete('Answer')
         
     | 
| 
       43 
     | 
    
         
            -
                    assignment['Answer'] = answer
         
     | 
| 
       44 
     | 
    
         
            -
                    assignments << assignment
         
     | 
| 
       45 
     | 
    
         
            -
                  end
         
     | 
| 
       46 
     | 
    
         
            -
                end
         
     | 
| 
       47 
     | 
    
         
            -
                assignments
         
     | 
| 
       48 
     | 
    
         
            -
              end
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
              def url_for_hit(hit_id)
         
     | 
| 
       51 
     | 
    
         
            -
                url_for_hit_type(getHIT(:HITId => hit_id)[:HITTypeId])
         
     | 
| 
       52 
     | 
    
         
            -
              end
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
              def url_for_hit_type(hit_type_id)
         
     | 
| 
       55 
     | 
    
         
            -
                if @host =~ /sandbox/
         
     | 
| 
       56 
     | 
    
         
            -
                  "http://workersandbox.mturk.com/mturk/preview?groupId=#{hit_type_id}" # Sandbox Url
         
     | 
| 
       57 
     | 
    
         
            -
                else
         
     | 
| 
       58 
     | 
    
         
            -
                  "http://mturk.com/mturk/preview?groupId=#{hit_type_id}" # Production Url
         
     | 
| 
       59 
     | 
    
         
            -
                end
         
     | 
| 
       60 
     | 
    
         
            -
              end
         
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
              private
         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
              def format_props(params)
         
     | 
| 
       65 
     | 
    
         
            -
                reward = params[:Reward]
         
     | 
| 
       66 
     | 
    
         
            -
                qualifiers = params[:QualificationRequirement]
         
     | 
| 
       67 
     | 
    
         
            -
                params.delete(:Reward)
         
     | 
| 
       68 
     | 
    
         
            -
                params.delete(:QualificationRequirement)
         
     | 
| 
       69 
     | 
    
         
            -
                params.merge!('Reward.1.Amount' => reward[:Amount], 'Reward.1.CurrencyCode' => reward[:CurrencyCode])
         
     | 
| 
       70 
     | 
    
         
            -
                qualifiers.each_with_index do |qualifier, i|
         
     | 
| 
       71 
     | 
    
         
            -
                  params["QualificationRequirement.#{i+1}.QualificationTypeId"] = qualifier[:QualificationTypeId]
         
     | 
| 
       72 
     | 
    
         
            -
                  params["QualificationRequirement.#{i+1}.Comparator"] = qualifier[:Comparator]
         
     | 
| 
       73 
     | 
    
         
            -
                  params["QualificationRequirement.#{i+1}.IntegerValue"] = qualifier[:IntegerValue] if qualifier[:IntegerValue]
         
     | 
| 
       74 
     | 
    
         
            -
                  params["QualificationRequirement.#{i+1}.LocaleValue.Country"] = qualifier[:Country] if qualifier[:Country]
         
     | 
| 
       75 
     | 
    
         
            -
                  params["QualificationRequirement.#{i+1}.RequiredToPreview"] = qualifier[:RequiredToPreview]
         
     | 
| 
       76 
     | 
    
         
            -
                end
         
     | 
| 
       77 
     | 
    
         
            -
                params
         
     | 
| 
       78 
     | 
    
         
            -
              end
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,22 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            module RTurk
         
     | 
| 
       2 
     | 
    
         
            -
              class ExternalQuestionBuilder
         
     | 
| 
       3 
     | 
    
         
            -
                
         
     | 
| 
       4 
     | 
    
         
            -
                
         
     | 
| 
       5 
     | 
    
         
            -
                def self.build(url, opts = {})
         
     | 
| 
       6 
     | 
    
         
            -
                  frame_height = opts[:frame_height] || 400
         
     | 
| 
       7 
     | 
    
         
            -
                  opts.delete(:frame_height)
         
     | 
| 
       8 
     | 
    
         
            -
                  querystring = opts.collect { |key, value| [CGI.escape(key.to_s), CGI.escape(value.to_s)].join('=') }.join('&')
         
     | 
| 
       9 
     | 
    
         
            -
                  url = opts.empty? ? url : "#{url}?#{querystring}"
         
     | 
| 
       10 
     | 
    
         
            -
                  xml = <<-XML
         
     | 
| 
       11 
     | 
    
         
            -
            <ExternalQuestion xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2006-07-14/ExternalQuestion.xsd">
         
     | 
| 
       12 
     | 
    
         
            -
            	<ExternalURL>#{url}</ExternalURL>	
         
     | 
| 
       13 
     | 
    
         
            -
            	<FrameHeight>#{frame_height}</FrameHeight>
         
     | 
| 
       14 
     | 
    
         
            -
            </ExternalQuestion>
         
     | 
| 
       15 
     | 
    
         
            -
                  XML
         
     | 
| 
       16 
     | 
    
         
            -
                  xml
         
     | 
| 
       17 
     | 
    
         
            -
                end
         
     | 
| 
       18 
     | 
    
         
            -
                
         
     | 
| 
       19 
     | 
    
         
            -
              end
         
     | 
| 
       20 
     | 
    
         
            -
              
         
     | 
| 
       21 
     | 
    
         
            -
              
         
     | 
| 
       22 
     | 
    
         
            -
            end
         
     | 
    
        data/spec/answer_spec.rb
    DELETED
    
    | 
         @@ -1,24 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require File.dirname(__FILE__) + '/spec_helper'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            describe RTurk::Answer do
         
     | 
| 
       5 
     | 
    
         
            -
              
         
     | 
| 
       6 
     | 
    
         
            -
              before(:all) do
         
     | 
| 
       7 
     | 
    
         
            -
                @answer =  "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
         
     | 
| 
       8 
     | 
    
         
            -
                <QuestionFormAnswers xmlns=\"http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2005-10-01/QuestionFormAnswers.xsd\">
         
     | 
| 
       9 
     | 
    
         
            -
                <Answer>\n<QuestionIdentifier>tweet</QuestionIdentifier>\n<FreeText>Spec example</FreeText>\n</Answer>
         
     | 
| 
       10 
     | 
    
         
            -
                <Answer>\n<QuestionIdentifier>Submit</QuestionIdentifier>\n<FreeText>Submit</FreeText>\n</Answer>
         
     | 
| 
       11 
     | 
    
         
            -
                <Answer>\n<QuestionIdentifier>Foo</QuestionIdentifier>\n<RandomSelector>Bar</RandomSelector>\n</Answer>
         
     | 
| 
       12 
     | 
    
         
            -
                </QuestionFormAnswers>\n"
         
     | 
| 
       13 
     | 
    
         
            -
                @answer2 = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
         
     | 
| 
       14 
     | 
    
         
            -
                <QuestionFormAnswers xmlns=\"http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2005-10-01/QuestionFormAnswers.xsd\">
         
     | 
| 
       15 
     | 
    
         
            -
                <Answer>\n<QuestionIdentifier>tweet</QuestionIdentifier>\n<FreeText>Spec example</FreeText>\n</Answer>
         
     | 
| 
       16 
     | 
    
         
            -
                </QuestionFormAnswers>\n"
         
     | 
| 
       17 
     | 
    
         
            -
              end
         
     | 
| 
       18 
     | 
    
         
            -
              
         
     | 
| 
       19 
     | 
    
         
            -
              it "should parse an answer" do
         
     | 
| 
       20 
     | 
    
         
            -
                RTurk::Answer.parse(@answer).should == {'Submit' => 'Submit', 'tweet' => 'Spec example', 'Foo' => 'Bar'}
         
     | 
| 
       21 
     | 
    
         
            -
                RTurk::Answer.parse(@answer2).should == {'tweet' => 'Spec example'}
         
     | 
| 
       22 
     | 
    
         
            -
              end
         
     | 
| 
       23 
     | 
    
         
            -
              
         
     | 
| 
       24 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,27 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require File.dirname(__FILE__) + '/spec_helper'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            describe RTurk::ExternalQuestionBuilder do
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
              
         
     | 
| 
       7 
     | 
    
         
            -
              it "should build a question with params" do
         
     | 
| 
       8 
     | 
    
         
            -
                RTurk::ExternalQuestionBuilder.build('http://google.com/', :id => 'foo').should == 
         
     | 
| 
       9 
     | 
    
         
            -
                <<-XML
         
     | 
| 
       10 
     | 
    
         
            -
            <ExternalQuestion xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2006-07-14/ExternalQuestion.xsd">
         
     | 
| 
       11 
     | 
    
         
            -
            	<ExternalURL>http://google.com/?id=foo</ExternalURL>	
         
     | 
| 
       12 
     | 
    
         
            -
            	<FrameHeight>400</FrameHeight>
         
     | 
| 
       13 
     | 
    
         
            -
            </ExternalQuestion>
         
     | 
| 
       14 
     | 
    
         
            -
                XML
         
     | 
| 
       15 
     | 
    
         
            -
              end
         
     | 
| 
       16 
     | 
    
         
            -
              
         
     | 
| 
       17 
     | 
    
         
            -
              it "should build a question without params" do
         
     | 
| 
       18 
     | 
    
         
            -
                RTurk::ExternalQuestionBuilder.build('http://google.com/').should == 
         
     | 
| 
       19 
     | 
    
         
            -
                <<-XML
         
     | 
| 
       20 
     | 
    
         
            -
            <ExternalQuestion xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2006-07-14/ExternalQuestion.xsd">
         
     | 
| 
       21 
     | 
    
         
            -
            	<ExternalURL>http://google.com/</ExternalURL>	
         
     | 
| 
       22 
     | 
    
         
            -
            	<FrameHeight>400</FrameHeight>
         
     | 
| 
       23 
     | 
    
         
            -
            </ExternalQuestion>
         
     | 
| 
       24 
     | 
    
         
            -
                XML
         
     | 
| 
       25 
     | 
    
         
            -
              end
         
     | 
| 
       26 
     | 
    
         
            -
              
         
     | 
| 
       27 
     | 
    
         
            -
            end
         
     |