ruby-mext 0.21.0 → 0.21.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mext/numeric/meter.rb +21 -0
- data/lib/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af5724f948e0ea3cdfd938e89f37c4daf105d42d3c114faa68385269907ced28
|
4
|
+
data.tar.gz: 17886d733497b5553741ee31022f13378a3f38d0043182b10391abebdc9fd511
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 833603ff9cf2f2845fb5e3757fb5c7cef2679650439c65d3e2ea3cc7506fbea5cbd37920f56ecc067dff3820f35fba4b6a9afb0c9339b8286fc404012142fc90
|
7
|
+
data.tar.gz: 109db15f348ca299e959d3bd61d6371ac5f1d553e56ab9d0f5ddd8e8269f44a5e9b63a2bb9ba80667a06eee6f959f7649d3b21c91bcd113b1bb7c19fc6dc7798
|
data/lib/mext/numeric/meter.rb
CHANGED
@@ -11,11 +11,32 @@ module Mext
|
|
11
11
|
class Meter
|
12
12
|
|
13
13
|
attr_accessor :numerator, :divisor
|
14
|
+
|
15
|
+
alias_method :denominator, :divisor
|
14
16
|
|
15
17
|
def initialize(n, d)
|
16
18
|
self.numerator = n.to_f
|
17
19
|
self.divisor = d.to_f
|
18
20
|
end
|
21
|
+
|
22
|
+
def to_r
|
23
|
+
Rational(self.numerator, self.divisor)
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_s
|
27
|
+
"#{self.numerator}/#{self.divisor}"
|
28
|
+
end
|
29
|
+
#
|
30
|
+
# we use the logic of +Rational+ to perform logic on +Meter+
|
31
|
+
#
|
32
|
+
[:==, :<, :<=, :>, :>=, :<=>, :===].each { |m| define_method(m) { |other| common_logic(m, other) } }
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def common_logic(method, other)
|
37
|
+
raise ArgumentError unless other.kind_of?(Meter) || other.kind_of?(Rational)
|
38
|
+
self.to_r.send(method, other.to_r)
|
39
|
+
end
|
19
40
|
|
20
41
|
end
|
21
42
|
|
data/lib/version.rb
CHANGED