Module: Musa::Scales::Scales

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

Class Method Summary collapse

Class Method Details

.[](id) ⇒ Object

Raises:

  • (KeyError)


19
20
21
22
23
# File 'lib/musa-dsl/music/scales.rb', line 19

def self.[](id)
  raise KeyError, "Scale system :#{id} not found" unless @scale_systems.key?(id)

  @scale_systems[id]
end

.default_systemObject



25
26
27
# File 'lib/musa-dsl/music/scales.rb', line 25

def self.default_system
  @default_scale_system
end

.register(scale_system, default: nil) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/musa-dsl/music/scales.rb', line 6

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