Class: ItunesAffiliate::ItunesLink
- Inherits:
-
Object
- Object
- ItunesAffiliate::ItunesLink
- Defined in:
- lib/itunes_affiliate/itunes_link.rb
Constant Summary collapse
- Partners =
The list of possible affiliate parters, as determined by the store.
[:linkshare,:linkshare_japan,:tradedoubler,:dgm].freeze
Class Method Summary collapse
-
.is_valid_link?(link) ⇒ Boolean
Determines if the link is a valid itunes clean url.
Instance Method Summary collapse
-
#affiliate_link(partner) ⇒ String
Returns an affiliate link.
-
#initialize(source_link) ⇒ ItunesLink
constructor
Initializes a new instance of the ItunesLink class.
Constructor Details
#initialize(source_link) ⇒ ItunesLink
Initializes a new instance of the ItunesLink class
13 14 15 16 |
# File 'lib/itunes_affiliate/itunes_link.rb', line 13 def initialize(source_link) raise ArgumentException "You need to provide a source link" unless source_link @source_link = source_link end |
Class Method Details
.is_valid_link?(link) ⇒ Boolean
Determines if the link is a valid itunes clean url.
40 41 42 43 44 |
# File 'lib/itunes_affiliate/itunes_link.rb', line 40 def self.is_valid_link?(link) uri = URI.parse(link) rescue nil uri != nil && uri.host != nil && uri.host.downcase == "itunes.apple.com" end |
Instance Method Details
#affiliate_link(partner) ⇒ String
Returns an affiliate link
22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/itunes_affiliate/itunes_link.rb', line 22 def affiliate_link(partner) case partner when :linkshare append_to_link @source_link, "&partnerId=#{ItunesAffiliate.config.linkshare_partner_id}&siteID=#{ItunesAffiliate.config.linkshare_key}" when :linkshare_japan append_to_link @source_link, "&partnerId=#{ItunesAffiliate.config.linkshare_japan_partner_id}&siteID=#{ItunesAffiliate.config.linkshare_japan_key}" when :tradedoubler append_to_link @source_link, "&partnerId=#{ItunesAffiliate.config.tradedoubler_partner_id}&tduid=#{ItunesAffiliate.config.tradedoubler_key}" when :dgm append_to_link @source_link, "&partnerId=#{ItunesAffiliate.config.dgm_partner_id}&affToken=#{ItunesAffiliate.config.dgm_key}" else raise ArgumentException "Unrecognized partner #{partner} must be one of #{Partners}" end end |