ruby-mext 0.20.1 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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