ruby-mext 0.20.1 → 0.21.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef13ce3b00304524afa0db5526a46970b72794624ba58439fa9f09b4c4ff28e6
4
- data.tar.gz: '0117097dcc8bb063ca601ee3174ab23ccdf451c42eaf9c6d16ebdcaec28d46f8'
3
+ metadata.gz: 641330c8c2cd9031e4ef3be9947cff95bae6b687c3b1466843a3df066d53243f
4
+ data.tar.gz: 04e7e322a7dcbfc7da30fd8a5858aa52dda0c8201a83142118b58f65ba8780b0
5
5
  SHA512:
6
- metadata.gz: 369006bbdea1f369bf71b9a270106a364b276730f1be771c466997c1847db9ced8676e4b60bf1ae82b73e6541a81f88f3c068a4505b2171e3a6c29b9066fa23f
7
- data.tar.gz: 9c818da9ff160559990873fa06acf7f1f41912f4319aacc2fec7b98051715db89f8f94884979f6048a2cee4e1e10d8895ffa7d9d5b1352f4ef0e0a1e3dc3c25a
6
+ metadata.gz: 63b6f8e53ede313224d7ed45c65157b73bad7e5ced9436beac0efa9eb92f81331ac0e731dac6f3535917609014e670e1c3cd6a9aeabe66324566efc395d2a613
7
+ data.tar.gz: 107500aec8b7c15107192e71b0e23c780432c88d8f2964b1124ce293dbc10438213174ea4fd716804be1de39ae197c0ff265aee225013995c9344af45ddf9ccc
@@ -0,0 +1,46 @@
1
+ module Mext
2
+ module Numeric
3
+
4
+ #
5
+ # +Meter+:
6
+ #
7
+ # in music we cannot use the +Rational+ class
8
+ # because the latter will make all due conversions
9
+ # simplifying meters (like: 4/4 => 1/1), which is not what we want
10
+ #
11
+ class Meter
12
+
13
+ attr_accessor :numerator, :divisor
14
+
15
+ def initialize(n, d)
16
+ self.numerator = n.to_f
17
+ self.divisor = d.to_f
18
+ end
19
+
20
+ end
21
+
22
+ end
23
+ end
24
+
25
+ #
26
+ # +Meter(n, d)+ is defined to actually mimick a +Rational()+
27
+ #
28
+ def Meter(n, d)
29
+ Mext::Numeric::Meter.new(n,d)
30
+ end
31
+
32
+ #
33
+ # we extend the +String+ class to carry a +to_meter+ which
34
+ # will convert a string into a meter
35
+ #
36
+ class String
37
+
38
+ def to_meter
39
+ div = num = 1.0
40
+ (nums, divs) = self.split(/\s*\/\s*/, 2)
41
+ num = nums.to_f
42
+ div = divs.to_f
43
+ Meter(num, div)
44
+ end
45
+
46
+ end
data/lib/mext/numeric.rb CHANGED
@@ -24,6 +24,7 @@ module Mext
24
24
  NON_VECTORIZABLE_METHODS = %w(
25
25
  constants
26
26
  pitch_fork
27
+ meter
27
28
  )
28
29
  ADDED_METHODS = NON_VECTORIZABLE_METHODS + VECTORIZABLE_METHODS
29
30
 
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mext
2
- VERSION = '0.20.1'
2
+ VERSION = '0.21.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-mext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.1
4
+ version: 0.21.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicola Bernardini
@@ -169,6 +169,7 @@ files:
169
169
  - lib/mext/numeric/dbamp.rb
170
170
  - lib/mext/numeric/ftom.rb
171
171
  - lib/mext/numeric/gold.rb
172
+ - lib/mext/numeric/meter.rb
172
173
  - lib/mext/numeric/mmtot.rb
173
174
  - lib/mext/numeric/mround.rb
174
175
  - lib/mext/numeric/mtof.rb