simple_temperature 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,27 @@
1
+ class Temperature
2
+ attr_accessor :number, :unit
3
+
4
+ def initialize(number, unit)
5
+ @number = number
6
+ @unit = unit
7
+ end
8
+
9
+ def to_fahrenheit
10
+ to_celsius * (9 / 5.0) + 32
11
+ end
12
+
13
+ def to_celsius
14
+ case unit
15
+ when :celsius
16
+ number
17
+ when :fahrenheit
18
+ (number - 32) * (5 / 9.0)
19
+ when :kelvin
20
+ number - 273.15
21
+ end
22
+ end
23
+
24
+ def to_kelvin
25
+ to_celsius + 273.15
26
+ end
27
+ end
@@ -0,0 +1,8 @@
1
+ class Temperature
2
+ module Version
3
+ MAJOR = 0
4
+ MINOR = 1
5
+ PATCH = 0
6
+ STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
7
+ end
8
+ end
@@ -0,0 +1,36 @@
1
+ require "temperature"
2
+ require "test/unit"
3
+
4
+ class TemperatureTest < Test::Unit::TestCase
5
+ def test_assign_attributes
6
+ temp = Temperature.new(32, :celsius)
7
+
8
+ assert_equal 32, temp.number
9
+ assert_equal :celsius, temp.unit
10
+ end
11
+
12
+ def test_convert_celsius_to_kelvin
13
+ temp = Temperature.new(50, :celsius)
14
+ assert_equal 323.15, temp.to_kelvin
15
+ end
16
+
17
+ def test_convert_celsius_to_fahrenheit
18
+ temp = Temperature.new(40, :celsius)
19
+ assert_equal 104, temp.to_fahrenheit
20
+ end
21
+
22
+ def test_convert_celsius_to_celsius
23
+ temp = Temperature.new(40, :celsius)
24
+ assert_equal 40, temp.to_celsius
25
+ end
26
+
27
+ def test_convert_kelvin_to_celsius
28
+ temp = Temperature.new(323.15, :kelvin)
29
+ assert_equal 50, temp.to_celsius
30
+ end
31
+
32
+ def test_convert_fahrenhet_to_celsius
33
+ temp = Temperature.new(104, :fahrenheit)
34
+ assert_equal 40, temp.to_celsius
35
+ end
36
+ end
metadata ADDED
@@ -0,0 +1,49 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: simple_temperature
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Nando Vieira
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-01-01 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Convert temperature between different units like Celsius, Kelvin and
15
+ Fahrenheit.
16
+ email: fnando.vieira@gmail.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - lib/temperature/version.rb
22
+ - lib/temperature.rb
23
+ - test/temperature_test.rb
24
+ homepage: http://rubygems.org/gems/simple_temperature
25
+ licenses: []
26
+ post_install_message:
27
+ rdoc_options: []
28
+ require_paths:
29
+ - lib
30
+ required_ruby_version: !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ! '>='
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ required_rubygems_version: !ruby/object:Gem::Requirement
37
+ none: false
38
+ requirements:
39
+ - - ! '>='
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ requirements: []
43
+ rubyforge_project:
44
+ rubygems_version: 1.8.11
45
+ signing_key:
46
+ specification_version: 3
47
+ summary: Convert temperature between different units.
48
+ test_files:
49
+ - test/temperature_test.rb