class AdtekioAdnetworks::BasePostbackClass
Attributes
event[R]
netcfg[R]
params[R]
user[R]
Public Class Methods
new(event, user, netcfg, params = nil)
click to toggle source
# File lib/adtekio_adnetworks/postbacks.rb, line 57 def initialize(event, user, netcfg, params = nil) @event = event @params = params || (event && event.params) @user = user @netcfg = netcfg end
Public Instance Methods
cfg_to_url(cfg)
click to toggle source
# File lib/adtekio_adnetworks/postbacks.rb, line 97 def cfg_to_url(cfg) return unless should_handle?(cfg) header = either_hash_or_symbol_to_string(cfg.header) body = either_hash_or_symbol_to_string(cfg.post) urlparams = ( (cfg.params.is_a?(Hash) && cfg.params) || cfg.params.is_a?(Symbol) && send(cfg.params) ) || {} uri = Addressable::URI.parse(cfg.url) uri.query_values = urlparams unless urlparams.empty? url = CGI.unescape(uri.to_s) parsed_header = CGI::parse(parse_string(header) || "") parsed_header.each { |key, value| parsed_header[key] = value.first } { :url => parse_string(url), :body => parse_string(body), :header => parsed_header} end
contains_eruby?(val)
click to toggle source
# File lib/adtekio_adnetworks/postbacks.rb, line 72 def contains_eruby?(val) val && !!(val =~ /@\{.*\}@/ || val =~ /<%.*%>/m) end
either_hash_or_symbol_to_string(val)
click to toggle source
# File lib/adtekio_adnetworks/postbacks.rb, line 85 def either_hash_or_symbol_to_string(val) if val.is_a?(Hash) uri = Addressable::URI.new uri.query_values = val CGI.unescape(uri.to_s).gsub(/^[?]/,'') elsif val.is_a?(Symbol) send(val) else val.to_s end end
muidify(val)
click to toggle source
# File lib/adtekio_adnetworks/postbacks.rb, line 68 def muidify(val) Base64.encode64(MD5.md5(val).digest).tr("+/=", "-_\n").strip end
parse_string(str)
click to toggle source
# File lib/adtekio_adnetworks/postbacks.rb, line 76 def parse_string(str) contains_eruby?(str) ? CGIEruby.new(str).result(binding) : str end
sha1(value)
click to toggle source
# File lib/adtekio_adnetworks/postbacks.rb, line 64 def sha1(value) Digest::SHA1.hexdigest(value || "") end
should_handle?(cfg)
click to toggle source
# File lib/adtekio_adnetworks/postbacks.rb, line 80 def should_handle?(cfg) cfg.check.nil? || !!(cfg.check.is_a?(Symbol) ? send(cfg.check) : eval(cfg.check)) end