Method: Musa::Scales::Scales.register

Defined in:
lib/musa-dsl/music/scales.rb

.register(scale_system, default: nil) ⇒ self

Registers a scale system.

Makes the scale system available via symbol lookup and dynamic method. Optionally marks it as the default system.

Examples:

Scales.register EquallyTempered12ToneScaleSystem, default: true

Parameters:

  • scale_system (Class)

    the ScaleSystem subclass to register

  • default (Boolean) (defaults to: nil)

    whether to set as default system

Returns:

  • (self)


113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/musa-dsl/music/scales.rb', line 113

def self.register(scale_system, default: nil)
  @scale_systems ||= {}
  @scale_systems[scale_system.id] = scale_system

  @default_scale_system = scale_system if default

  self.class.define_method scale_system.id do
    scale_system
  end

  self
end