Skip to content

Instantly share code, notes, and snippets.

@apetrov
Created October 6, 2014 21:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save apetrov/b3d61bb67fff6d2986d3 to your computer and use it in GitHub Desktop.
Save apetrov/b3d61bb67fff6d2986d3 to your computer and use it in GitHub Desktop.
SiteEffectiveRates = Struct.new(:parent_id, :domain, :pricing, :data)
def map_sites(sites, result_set)
sites.map do |t|
result_set[t.id].map do |pricing, data|
SiteEffectiveRates.new(t.parent_id, t.host_from_url, pricing.to_sym, data )
end
end.flatten
end
def map_learning(learning)
learning.map{ |t| SiteEffectiveRates.new(t.parent_id, t.domain, t.pricing.to_sym, LEARNING_RATES[t.pricing.to_sym]) }
end
def reduce(sites)
{}.tap do |result|
sites.each do |t|
result[t.parent_id] ||= {}
result[t.parent_id][t.domain]||={}
result[t.parent_id][t.domain][t.pricing] = t.data
end
end
end
@apetrov
Copy link
Author

apetrov commented Oct 7, 2014

(def LEARNING {})
(defrecord SiteEffectiveRates [parent_id domain pricing data])
(defn- map-sites [sites, result-set]
  (map (fn [t]
         (map (fn [pricing, data]
                (SiteEffectiveRates. (:parent_id t) (:host_from_url t) pricing data)  ) 
              (get result-set (:id t)))) 
          sites) 
)

(defn- map-learning 
        [learning]
        (map #(SiteEffectiveRates. (:parent_id %) (:host_from_url %) (:pricing %) (get LEARNING :pricing) )
             learning))


(map-learning [{:parent_id 1 :host_from_url 3 :pricing 5}])
(map-sites [{:parent_id 1 :host_from_url 3 :pricing 5}] {})

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment