Your public API can be specified in the options hash or preferably using the Configuration.
options
# File lib/recaptcha/client_helper.rb, line 5 def recaptcha_tags(options = {}) # Default options key = options[:public_key] ||= Recaptcha.configuration.public_key raise RecaptchaError, "No public key specified." unless key error = options[:error] ||= ((defined? flash) ? flash[:recaptcha_error] : "") uri = Recaptcha.configuration.api_server_url(options[:ssl]) lang = options[:display] && options[:display][:lang] ? options[:display][:lang].to_sym : "" html = "" if options[:display] html << %Q{<script type="text/javascript">\n} html << %Q{ var RecaptchaOptions = #{hash_to_json(options[:display])};\n} html << %Q{</script>\n} end if options[:ajax] html << <<-EOS <div id="dynamic_recaptcha"></div> <script type="text/javascript"> var rc_script_tag = document.createElement('script'), rc_init_func = function(){Recaptcha.create("#{key}", document.getElementById("dynamic_recaptcha")#{',RecaptchaOptions' if options[:display]});} rc_script_tag.src = "#{uri}/js/recaptcha_ajax.js"; rc_script_tag.type = 'text/javascript'; rc_script_tag.onload = function(){rc_init_func.call();}; rc_script_tag.onreadystatechange = function(){ if (rc_script_tag.readyState == 'loaded' || rc_script_tag.readyState == 'complete') {rc_init_func.call();} }; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(rc_script_tag); </script> EOS else html << %Q{<script type="text/javascript" src="#{uri}/challenge?k=#{key}} html << %Q{#{error ? "&error=#{CGI::escape(error)}" : ""}} html << %Q{#{lang ? "&lang=#{lang}" : ""}"></script>\n} unless options[:noscript] == false html << %Q{<noscript>\n } html << %Q{<iframe src="#{uri}/noscript?k=#{key}" } html << %Q{height="#{options[:iframe_height] ||= 300}" } html << %Q{width="#{options[:iframe_width] ||= 500}" } html << %Q{style="border:none;"></iframe><br/>\n } html << %Q{<textarea name="recaptcha_challenge_field" } html << %Q{rows="#{options[:textarea_rows] ||= 3}" } html << %Q{cols="#{options[:textarea_cols] ||= 40}"></textarea>\n } html << %Q{<input type="hidden" name="recaptcha_response_field" value="manual_challenge"/>} html << %Q{</noscript>\n} end end return (html.respond_to?(:html_safe) && html.html_safe) || html end
# File lib/recaptcha/client_helper.rb, line 55 def hash_to_json(hash) result = "{" result << hash.map do |k, v| if ! v.is_a?(String) || k.to_s == "callback" "\"#{k}\": #{v}" else "\"#{k}\": \"#{v}\"" end end.join(", ") result << "}" end