Class: Tonal::Ratio::Approximation::Set
- Inherits:
-
Object
- Object
- Tonal::Ratio::Approximation::Set
- Extended by:
- Forwardable
- Defined in:
- lib/tonal/approximation.rb
Instance Attribute Summary collapse
-
#ratio ⇒ Object
readonly
Returns the value of attribute ratio.
-
#ratios ⇒ Object
readonly
Returns the value of attribute ratios.
Instance Method Summary collapse
- #[](index) ⇒ Object
-
#initialize(ratio:) {|@ratios| ... } ⇒ Set
constructor
A new instance of Set.
- #inspect ⇒ Object
- #max_primes ⇒ Object
- #min_primes ⇒ Object
- #prime_divisions ⇒ Object
- #sort_by ⇒ Object
- #to_cents ⇒ Object
Constructor Details
#initialize(ratio:) {|@ratios| ... } ⇒ Set
Returns a new instance of Set.
184 185 186 187 188 |
# File 'lib/tonal/approximation.rb', line 184 def initialize(ratio:) @ratio = ratio @ratios = ::Set.new yield @ratios if block_given? end |
Instance Attribute Details
#ratio ⇒ Object (readonly)
Returns the value of attribute ratio.
182 183 184 |
# File 'lib/tonal/approximation.rb', line 182 def ratio @ratio end |
#ratios ⇒ Object (readonly)
Returns the value of attribute ratios.
182 183 184 |
# File 'lib/tonal/approximation.rb', line 182 def ratios @ratios end |
Instance Method Details
#[](index) ⇒ Object
211 212 213 |
# File 'lib/tonal/approximation.rb', line 211 def [](index) entries[index] end |
#inspect ⇒ Object
191 192 193 |
# File 'lib/tonal/approximation.rb', line 191 def inspect "#{ratio}: #{entries}" end |
#max_primes ⇒ Object
199 200 201 |
# File 'lib/tonal/approximation.rb', line 199 def max_primes entries.map(&:max_prime) end |
#min_primes ⇒ Object
203 204 205 |
# File 'lib/tonal/approximation.rb', line 203 def min_primes entries.map(&:min_prime) end |
#prime_divisions ⇒ Object
207 208 209 |
# File 'lib/tonal/approximation.rb', line 207 def prime_divisions entries.map(&:prime_divisions) end |
#sort_by ⇒ Object
215 216 217 218 219 220 221 |
# File 'lib/tonal/approximation.rb', line 215 def sort_by(&) self.class.new(ratio: ratio) do |ratios| entries.sort_by(&).each do |ratio| ratios << ratio end end end |
#to_cents ⇒ Object
195 196 197 |
# File 'lib/tonal/approximation.rb', line 195 def to_cents entries.map(&:to_cents) end |