Rake task to export default settings as seeds

This commit is contained in:
2024-12-06 01:17:05 +01:00
parent b38d72e9b0
commit 2e4eb3d4b5
7 changed files with 82 additions and 16 deletions

View File

@@ -20,19 +20,4 @@ end
# Formulas will be deleted as dependent on Quantities
#[Source, Quantity, Unit].each { |model| model.defaults.delete_all }
Unit.transaction do
Unit.defaults.delete_all
unit_1 = Unit.create symbol: "1", name: "dimensionless, one"
Unit.create symbol: "%", base: unit_1, multiplier: 1e-2, name: "percent"
Unit.create symbol: "", base: unit_1, multiplier: 1e-3, name: "promille"
Unit.create symbol: "", base: unit_1, multiplier: 1e-4, name: "basis point"
Unit.create symbol: "ppm", base: unit_1, multiplier: 1e-6, name: "parts per million"
unit_g = Unit.create symbol: "g", name: "gram"
Unit.create symbol: "ug", base: unit_g, multiplier: 1e-6, name: "microgram"
Unit.create symbol: "mg", base: unit_g, multiplier: 1e-3, name: "milligram"
Unit.create symbol: "kg", base: unit_g, multiplier: 1e3, name: "kilogram"
Unit.create symbol: "kcal", name: "kilocalorie"
end
require 'seeds/units.rb'

View File

@@ -0,0 +1,9 @@
Unit.transaction do
Unit.defaults.delete_all
<% Unit.defaults.ordered.each do |unit| %>
<%= "\n" if unit.base.nil? %>
unit_<%= unit.symbol %> =
Unit.create symbol: "<%= unit.symbol %>",<% unless unit.base.nil? %> base: unit_<%= unit.base.symbol %>, multiplier: <%= unit.multiplier.to_scientific %>,<% end %>
description: "<%= unit.description %>"
<% end %>
end

36
db/seeds/units.rb Normal file
View File

@@ -0,0 +1,36 @@
Unit.transaction do
Unit.defaults.delete_all
unit_1 =
Unit.create symbol: "1",
description: "dimensionless, one"
unit_ppm =
Unit.create symbol: "ppm", base: unit_1, multiplier: 1e-6,
description: "parts per million"
unit_ =
Unit.create symbol: "", base: unit_1, multiplier: 1e-4,
description: "basis point"
unit_ =
Unit.create symbol: "", base: unit_1, multiplier: 1e-3,
description: "promille"
unit_% =
Unit.create symbol: "%", base: unit_1, multiplier: 1e-2,
description: "percent"
unit_g =
Unit.create symbol: "g",
description: "gram"
unit_ug =
Unit.create symbol: "ug", base: unit_g, multiplier: 1e-6,
description: "microgram"
unit_mg =
Unit.create symbol: "mg", base: unit_g, multiplier: 1e-3,
description: "milligram"
unit_kg =
Unit.create symbol: "kg", base: unit_g, multiplier: 1e3,
description: "kilogram"
unit_kcal =
Unit.create symbol: "kcal",
description: "kilocalorie"
end