Sha256: 47f012b5a0feb49ded56596252ec663ad46268bd057ad713d00370b2153cc3b3

Contents?: true

Size: 775 Bytes

Versions: 6

Compression:

Stored size: 775 Bytes

Contents

class HeadMusic::Instrument::Variant
  attr_reader :key, :attributes

  def initialize(key, attributes = {})
    @key = key.to_s.to_sym
    @attributes = attributes
  end

  def pitch_designation
    return unless attributes["pitch_designation"].to_s != ""

    @pitch_designation ||=
      HeadMusic::Spelling.get(attributes["pitch_designation"])
  end

  def staff_schemes
    @staff_schemes ||=
      (attributes["staff_schemes"] || {}).map do |key, list|
        HeadMusic::Instrument::StaffScheme.new(
          key: key,
          variant: self,
          list: list
        )
      end
  end

  def default?
    key.to_s == "default"
  end

  def default_staff_scheme
    @default_staff_scheme ||=
      staff_schemes.find(&:default?) || staff_schemes.first
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
head_music-7.0.5 lib/head_music/instrument/variant.rb
head_music-7.0.4 lib/head_music/instrument/variant.rb
head_music-7.0.3 lib/head_music/instrument/variant.rb
head_music-7.0.2 lib/head_music/instrument/variant.rb
head_music-7.0.1 lib/head_music/instrument/variant.rb
head_music-7.0.0 lib/head_music/instrument/variant.rb