class G5::Jobbing::JobStatRetriever
Attributes
rollup_by[RW]
Public Class Methods
new(params={})
click to toggle source
# File lib/g5/jobbing/job_stat_retriever.rb, line 6 def initialize(params={}) self.rollup_by = params[:rollup_by] @job_stats = Hash.new end
Public Instance Methods
perform()
click to toggle source
# File lib/g5/jobbing/job_stat_retriever.rb, line 11 def perform response = fetch_get "#{jobs_base_url}?current=true" roll_it_up response end
Private Instance Methods
find_matching_job_stat(job)
click to toggle source
# File lib/g5/jobbing/job_stat_retriever.rb, line 25 def find_matching_job_stat(job) parent = self.rollup_by.detect { |key_values| key_values.last.include?(job.location_setting_urn) }.try(:first) return unless parent job_stat_key = @job_stats.keys.detect { |js_key| parent == js_key } return @job_stats[job_stat_key] if job_stat_key job_stat = G5::Jobbing::JobStat.new(rolled_up_by: parent, jobs: []) @job_stats[parent] = job_stat job_stat end
roll_it_up(jobs)
click to toggle source
# File lib/g5/jobbing/job_stat_retriever.rb, line 17 def roll_it_up(jobs) jobs.each do |job| job_stat = find_matching_job_stat(job) job_stat.jobs << job if job_stat end @job_stats end