Sha256: f8211279fd5ae2ec942a67cfd86411334bac7ca25408e927ef8cfed7271788f2

Contents?: true

Size: 1.19 KB

Versions: 3

Compression:

Stored size: 1.19 KB

Contents

require 'earth/model'

require 'earth/automobile/automobile_activity_year_type_fuel'

class AutomobileActivityYearType < ActiveRecord::Base
  extend Earth::Model

  TABLE_STRUCTURE = <<-EOS

CREATE TABLE automobile_activity_year_types
  (
     name                      CHARACTER VARYING(255) NOT NULL PRIMARY KEY,
     activity_year             INTEGER,
     type_name                 CHARACTER VARYING(255),
     hfc_emissions             FLOAT,
     hfc_emissions_units       CHARACTER VARYING(255),
     hfc_emission_factor       FLOAT,
     hfc_emission_factor_units CHARACTER VARYING(255)
  );

EOS

  self.primary_key = "name"
  
  # Used by Automobile and AutomobileTrip
  def self.find_by_type_name_and_closest_year(type_name, year)
    candidates = where(:type_name => type_name)
    if year > (max_year = candidates.maximum(:activity_year))
      candidates.where(:activity_year => max_year).first
    else
      candidates.where(:activity_year => [year, candidates.minimum(:activity_year)].max).first
    end
  end
  
  # for calculating hfc ef
  def activity_year_type_fuels
    AutomobileActivityYearTypeFuel.where(:activity_year => activity_year, :type_name => type_name)
  end
  
  warn_unless_size 30
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
earth-1.0.3 lib/earth/automobile/automobile_activity_year_type.rb
earth-1.0.2 lib/earth/automobile/automobile_activity_year_type.rb
earth-1.0.1 lib/earth/automobile/automobile_activity_year_type.rb