class LawSchoolOutcomes::EmploymentSummaryReport

Attributes

lines[R]
url[R]
year[R]

Public Class Methods

new(url: nil, year: 2015) click to toggle source
# File lib/law_school_outcomes/employment_summary_report.rb, line 17
def initialize(url: nil, year: 2015)
  @url = url
  @year = year
  @lines = read_lines
end

Public Instance Methods

domain() click to toggle source
# File lib/law_school_outcomes/employment_summary_report.rb, line 23
def domain
  Domainatrix.parse(url).domain
end
Also aliased as: school_name
employment_location_results() click to toggle source
# File lib/law_school_outcomes/employment_summary_report.rb, line 56
def employment_location_results
  @employment_location_results ||= EmploymentLocationSection.new(self).results
end
employment_status_results() click to toggle source
# File lib/law_school_outcomes/employment_summary_report.rb, line 40
def employment_status_results
  employment_status_section.results
end
employment_status_section() click to toggle source
# File lib/law_school_outcomes/employment_summary_report.rb, line 36
def employment_status_section
  @employment_status_section ||= EmploymentStatusSection.new(self)
end
employment_type_results() click to toggle source
# File lib/law_school_outcomes/employment_summary_report.rb, line 48
def employment_type_results
  @employment_type_results ||= EmploymentTypeSection.new(self).results
end
results() click to toggle source
# File lib/law_school_outcomes/employment_summary_report.rb, line 60
def results
  {
    url: url,
    school_name: school_name,
    school_info: school_info,
    year: year,
    total_grads: total_grads,
    #pct_employed_grads: pct_employed_grads,
    employment_outcomes:{
      #total_employed_grads: total_employed_grads,
      statuses: employment_status_results,
      types: employment_type_results,
      locations: employment_location_results
    }
  }
end
school_funded_employment_results() click to toggle source
# File lib/law_school_outcomes/employment_summary_report.rb, line 52
def school_funded_employment_results
  # todo
end
school_info() click to toggle source

def year

@year ||= lines[5].gsub("EMPLOYMENT SUMMARY FOR ","").gsub(" GRADUATES","").to_i

end

# File lib/law_school_outcomes/employment_summary_report.rb, line 32
def school_info
  @school_info || School.new(self).info
end
school_name()
Alias for: domain
total_grads() click to toggle source
# File lib/law_school_outcomes/employment_summary_report.rb, line 44
def total_grads
  employment_status_section.total_graduates
end

Private Instance Methods

download() click to toggle source
# File lib/law_school_outcomes/employment_summary_report.rb, line 87
def download
  FileUtils.rm_rf(file_source)

  File.open(file_source, "wb") do |local_file|
    open(url, "rb") do |remote_file|
      local_file.write(remote_file.read)
    end
  end
end
file_source() click to toggle source
# File lib/law_school_outcomes/employment_summary_report.rb, line 79
def file_source
  File.join(File.expand_path("../../../reports/#{year}/", __FILE__), "#{domain}.pdf")
end
io() click to toggle source
# File lib/law_school_outcomes/employment_summary_report.rb, line 97
def io
  if File.exist?(file_source)
    file_source
  else
    download # optionally download for next time, to avoid future network requests
    url_source
  end
end
read_lines() click to toggle source
# File lib/law_school_outcomes/employment_summary_report.rb, line 106
def read_lines
  reader = PDF::Reader.new(io)
  lines = reader.pages.first.text.split("\n")
  lines.select!{|line| line.size > 0 }
  lines.map!{|line| line.strip }
  raise LineCountError unless lines.count == 53
  return lines
end
url_source() click to toggle source
# File lib/law_school_outcomes/employment_summary_report.rb, line 83
def url_source
  open(url)
end