stave 0.1.2 → 0.1.4

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: 8dbd5c1307918d3c9af4689f6126d374ab8d7a31b03777f0bc3e9a32cf127188
4
- data.tar.gz: 985afcf77f58ea34b29e1f16f3ee98b01b711ae2701d0c7f0b084586ca553b64
3
+ metadata.gz: ebae6cd14565702017ab59053e673ba6bc1276904e18a9b4fb98a45c9d3a43a6
4
+ data.tar.gz: ce5db442ea409f00aed3a0a51be34b70e1b24b5c1edb5c71f88f5e4d67efe65f
5
5
  SHA512:
6
- metadata.gz: 0d318f7a0cf99045f8e7191734c8d0adb6f41af1d7fc0d63e91176ca2c60328cbe8c731011a2697736068bf0e4326d6032eb287ee818928ef06f900fdb2326b9
7
- data.tar.gz: 26f57ce7d59c8b333c2f4db3988763eb46c1ec1ab2c36cea23df1ac387ebd2104fc15e24293fe41929f37c3018136fc0c84701e78fc55b734952344ee8ea5d0a
6
+ metadata.gz: f0cd0052bf3e73b3bb4bcc606867a246f85320652aee174744c846a4cde70f6c4ee6a7d27618ea6e15a016e950ee3f358492a41a0f6ac4213d198c41c296eb69
7
+ data.tar.gz: 47abcd848fa4e243637ba5fc9b87d48c221ca9cae70795b2426d86eb90dac780b31ec7ddb42125ed2325b9fae1f5bb9d92b5690e0e1eca1f152abc81db63b2a9
@@ -1,6 +1,10 @@
1
1
  module Stave
2
2
  module Core
3
3
  class NoteCollection
4
+ extend Forwardable
5
+
6
+ def_delegators :type, :degrees
7
+
4
8
  attr_reader :root, :type
5
9
 
6
10
  def initialize(root:, type:)
@@ -20,6 +24,22 @@ module Stave
20
24
  notes[position - 1]
21
25
  end
22
26
 
27
+ def note_degree(note)
28
+ return unless notes.include?(note)
29
+
30
+ position = notes.index(note)
31
+
32
+ degrees[position]
33
+ end
34
+
35
+ def degree_note(degree)
36
+ return unless degrees.include?(degree)
37
+
38
+ position = degrees.index(degree)
39
+
40
+ notes[position]
41
+ end
42
+
23
43
  def uniq
24
44
  notes.uniq(&:variant)
25
45
  end
@@ -112,6 +112,10 @@ module Stave
112
112
 
113
113
  Degree.find_by(interval: new_interval)
114
114
  end
115
+
116
+ def self.non_root
117
+ variants.reject { |degree| degree.position == 1 }
118
+ end
115
119
  end
116
120
  end
117
121
  end
data/lib/stave/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Stave
2
- VERSION = "0.1.2".freeze
2
+ VERSION = "0.1.4".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stave
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Welham
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-11-12 00:00:00.000000000 Z
11
+ date: 2024-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: zeitwerk