Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions lib/measured/all.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# frozen_string_literal: true
require "measured"

require "measured/units/temperature"
3 changes: 3 additions & 0 deletions lib/measured/temperature.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# frozen_string_literal: true
require "measured/base"
require "measured/units/temperature"
14 changes: 14 additions & 0 deletions lib/measured/units/temperature.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# frozen_string_literal: true
Measured::Temperature = Measured.build do
unit :C, aliases: [:celsius]

unit :K, aliases: [:kelvin], convert_to: "C",
forward: ->(k) { k - BigDecimal("273.15") },
backward: ->(c) { c + BigDecimal("273.15") },
description: "celsius + 273.15"

unit :F, aliases: [:fahrenheit], convert_to: "C",
forward: ->(f) { (f - 32) * Rational(5, 9) },
backward: ->(c) { c * Rational(9, 5) + 32 },
description: "celsius * 9/5 + 32"
end
2 changes: 1 addition & 1 deletion test/test_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
require "combustion"
Combustion.path = "test/internal"
Combustion.initialize! :active_record, :active_model
require "measured"
require "measured/all"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah this is better!

require "minitest/reporters"
require "minitest/autorun"
require "mocha/minitest"
Expand Down
16 changes: 1 addition & 15 deletions test/units/temperature_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,6 @@

require "test_helper"

Measured::Temperature = Measured.build do
unit :C, aliases: [:c, :celsius]

unit :K, aliases: [:k, :kelvin], convert_to: "C",
forward: ->(k) { k - BigDecimal("273.15") },
backward: ->(c) { c + BigDecimal("273.15") },
description: "celsius + 273.15"

unit :F, aliases: [:f, :fahrenheit], convert_to: "C",
forward: ->(f) { (f - 32) * Rational(5, 9) },
backward: ->(c) { c * Rational(9, 5) + 32 },
description: "celsius * 9/5 + 32"
end

class Measured::TemperatureTest < ActiveSupport::TestCase
test ".unit_names should be the list of base unit names" do
assert_equal %w(C F K), Measured::Temperature.unit_names
Expand Down Expand Up @@ -84,7 +70,7 @@ class Measured::TemperatureTest < ActiveSupport::TestCase
end

test ".unit_names_with_aliases includes all aliases" do
expected = %w(C F K c celsius f fahrenheit k kelvin).sort
expected = %w(C F K celsius fahrenheit kelvin).sort
assert_equal expected, Measured::Temperature.unit_names_with_aliases
end

Expand Down
Loading