Class: Wuclan::Models::UserScrapingMetrics
- Inherits:
-
Object
- Object
- Wuclan::Models::UserScrapingMetrics
- Defined in:
- lib/wuclan/metrics/user_scraping_metrics.rb
Overview
Workable kludge to denormalize records
Class Method Summary collapse
Instance Method Summary collapse
-
#fill_from_bag(scrapings_bag) ⇒ Object
Instantiate from pig grouped output.
- #get(context, attr) ⇒ Object
- #set(context, attr, val) ⇒ Object
Class Method Details
.new(id, *args) ⇒ Object
53 54 55 56 57 58 59 60 61 |
# File 'lib/wuclan/metrics/user_scraping_metrics.rb', line 53 def self.new id, *args if args.length == 1 usm = super(id) usm.fill_from_bag *args usm else super id, *args end end |
Instance Method Details
#fill_from_bag(scrapings_bag) ⇒ Object
Instantiate from pig grouped output
user_scraping_metrics 3021 {(followers,20081228023148,2,2,0,0,0,0,0),(friends_ids,20090205064439,1,1,0,0,0,0,0),(followers_ids,20090205064439,1,1,0,0,0,0,0),(favorites,3021,1,1,0,0,0,0,0),(user,200902
41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/wuclan/metrics/user_scraping_metrics.rb', line 41 def fill_from_bag scrapings_bag scrapings_bag.split(/\),\(/).each do |scraping| scraping = scraping.gsub(/^[\{\(]+/,'').gsub(/[)}]+$/,'') context, *vals = scraping.split(",", 5) next unless USER_SCRAPING_CONTEXTS.include?(context.to_sym) [:scraped_at, :attempts, :successes, :failures].zip(vals).each do |attr, val| set context, attr, val end end self end |
#get(context, attr) ⇒ Object
32 33 34 |
# File 'lib/wuclan/metrics/user_scraping_metrics.rb', line 32 def get context, attr self.send("#{context}_#{attr}") end |
#set(context, attr, val) ⇒ Object
29 30 31 |
# File 'lib/wuclan/metrics/user_scraping_metrics.rb', line 29 def set context, attr, val self.send("#{context}_#{attr}=", val) end |