Sha256: b5b86845ed8d97ceb248d2e8ebcb4bb5e7054725b3a6fc7c238e47904349d01d
Contents?: true
Size: 1.03 KB
Versions: 1
Compression:
Stored size: 1.03 KB
Contents
require 'addressable/uri' # Class used to do the actual insertion of parameters class GoogleAnalyticsMailer::UriBuilder def initialize(filter=nil) @filter = filter end # Append google analytics params to the given uri # @param [String] uri the original uri # @param [Hash] params options for url to build # @option params [String] :utm_campaign required is the main GA param # @option params [String] :utm_content content of the campaign # @option params [String] :utm_source campaign source # @option params [String] :utm_medium campaign medium # @option params [String] :utm_term keyword for this campaign def build(uri, params) # remove empty GA params params.delete_if { |_, v| v.blank? } # if no params return untouched url return uri if params.empty? # build the final url parsed = ::Addressable::URI.parse(uri) return uri if @filter && !@filter.call(parsed) parsed.query_values = (parsed.query_values || {}).reverse_merge(params) if parsed.absolute? parsed.to_s.html_safe end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
google_analytics_mailer-0.3.0 | lib/google_analytics_mailer/uri_builder.rb |