Sha256: c378320f4a24df8b4b714b6ab05319bff54bd92fd34fb8ef58e772c3e554a310
Contents?: true
Size: 952 Bytes
Versions: 2
Compression:
Stored size: 952 Bytes
Contents
require 'addressable/uri' # Class used to do the actual insertion of parameters class GoogleAnalyticsMailer::UriBuilder # 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 ::Addressable::URI.parse(uri).tap do |parsed| parsed.query_values = (parsed.query_values || {}).reverse_merge(params) if parsed.absolute? end.to_s.html_safe end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
google_analytics_mailer-0.2.1 | lib/google_analytics_mailer/uri_builder.rb |
google_analytics_mailer-0.2.0 | lib/google_analytics_mailer/uri_builder.rb |