class JustGiving::SimpleDonationIntegration
Public Class Methods
charity_donation_url(charity_id, options={})
click to toggle source
Returns url for the donation page of a charity
# File lib/just_giving/simple_donation_integration.rb, line 11 def self.charity_donation_url(charity_id, options={}) options = self.parse_options(options) url = "#{JustGiving::Configuration.base_uri}/donation/direct/charity/#{charity_id}" url << self.options_to_query(options) if options.any? url end
charity_page_url(short_name)
click to toggle source
Returns url to link to a charity page
# File lib/just_giving/simple_donation_integration.rb, line 6 def self.charity_page_url(short_name) "#{JustGiving::Configuration.base_uri}/#{short_name}/donate" end
Also aliased as: fundraising_page_url
fundraising_donation_url(page_id, options={})
click to toggle source
Returns url for the donation page of a fundraising
# File lib/just_giving/simple_donation_integration.rb, line 23 def self.fundraising_donation_url(page_id, options={}) options = self.parse_options(options) url = "#{JustGiving::Configuration.base_uri}/donation/sponsor/page/#{page_id}" url << self.options_to_query(options) if options.any? url end
Private Class Methods
camelize(snake_case_word)
click to toggle source
This is a pretty niave implementation but we control the input so it suffices
# File lib/just_giving/simple_donation_integration.rb, line 39 def self.camelize(snake_case_word) snake_case_word.to_s.gsub(/_(.)/){$1.upcase} end
options_to_query(options)
click to toggle source
# File lib/just_giving/simple_donation_integration.rb, line 43 def self.options_to_query(options) "?#{options.collect{|k,v| "#{self.camelize(k)}=#{CGI.escape(v.to_s)}"}.join("&")}" end
parse_options(options)
click to toggle source
Remove options we are not interested in
# File lib/just_giving/simple_donation_integration.rb, line 33 def self.parse_options(options) available_options = [:amount, :frequency, :exit_url, :donation_id] options.delete_if{|key, value| !available_options.include?(key)} end