class UsdaNutrientDatabase::Import::FoodsNutrients

Private Instance Methods

apply_typecasts(row) click to toggle source
# File lib/usda_nutrient_database/import/foods_nutrients.rb, line 7
def apply_typecasts(row)
  row[8] = row[8] == 'Y'
  row
end
columns() click to toggle source
# File lib/usda_nutrient_database/import/foods_nutrients.rb, line 12
def columns
  [
    :nutrient_databank_number, :nutrient_number, :nutrient_value,
    :num_data_points, :standard_error, :src_code, :derivation_code,
    :ref_nutrient_databank_number, :add_nutrient_mark, :num_studies, :min,
    :max, :degrees_of_freedom, :lower_error_bound, :upper_error_bound,
    :statistical_comments, :add_mod_date
  ]
end
filename() click to toggle source
# File lib/usda_nutrient_database/import/foods_nutrients.rb, line 29
def filename
  'NUT_DATA.txt'
end
find_or_initialize(row) click to toggle source
# File lib/usda_nutrient_database/import/foods_nutrients.rb, line 22
def find_or_initialize(row)
  UsdaNutrientDatabase::FoodsNutrient.new(
    nutrient_databank_number: row[0],
    nutrient_number: row[3]
  )
end
log_import_started() click to toggle source
# File lib/usda_nutrient_database/import/foods_nutrients.rb, line 33
def log_import_started
  UsdaNutrientDatabase.log 'Importing foods_nutrients'
end
save_objects() click to toggle source
# File lib/usda_nutrient_database/import/foods_nutrients.rb, line 37
def save_objects
  options = {
    batch_size: UsdaNutrientDatabase.batch_size,
    validate: false
  }
  if UsdaNutrientDatabase::FoodsNutrient.exists?
    options.merge!(
      on_duplicate_key_update: {
        conflict_target: %i(nutrient_databank_number nutrient_number),
        columns: columns
      }
    )
  end
  UsdaNutrientDatabase::FoodsNutrient.import(
    columns,
    objects_to_import,
    options
  )
end