Class: Tetsujin::Instrument::Guitar::String

Inherits:
Object
  • Object
show all
Defined in:
lib/tetsujin/instrument/guitar/string.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(tuning:, string_number:, fretboard_length: 22) ⇒ String

Returns a new instance of String.

Parameters:

  • tuning (Tetsujin::Theory::Note)

    チューニング

  • string_number (Integer)

    弦番号

  • fretboard_length (Integer) (defaults to: 22)

    フレット数

Raises:

  • (TypeError)


10
11
12
13
14
15
16
17
18
# File 'lib/tetsujin/instrument/guitar/string.rb', line 10

def initialize(tuning:, string_number:, fretboard_length: 22)
  raise TypeError unless tuning.is_a?(Tetsujin::Theory::Note)
  raise TypeError unless string_number.is_a?(Integer)
  raise TypeError unless fretboard_length.is_a?(Integer)

  @tuning = tuning
  @string_number = string_number
  @fretboard_length = fretboard_length
end

Instance Attribute Details

#fretboard_lengthObject (readonly)

Returns the value of attribute fretboard_length.



5
6
7
# File 'lib/tetsujin/instrument/guitar/string.rb', line 5

def fretboard_length
  @fretboard_length
end

#string_numberObject (readonly)

Returns the value of attribute string_number.



5
6
7
# File 'lib/tetsujin/instrument/guitar/string.rb', line 5

def string_number
  @string_number
end

#tuningObject (readonly)

Returns the value of attribute tuning.



5
6
7
# File 'lib/tetsujin/instrument/guitar/string.rb', line 5

def tuning
  @tuning
end

Instance Method Details

#==(other) ⇒ Boolean

Parameters:

Returns:

  • (Boolean)


50
51
52
# File 'lib/tetsujin/instrument/guitar/string.rb', line 50

def ==(other)
  tuning == other.tuning && string_number == other.string_number && fretboard_length == other.fretboard_length
end

#[](fret_number) ⇒ Tetsujin::Instrument::Guitar::Fret

Parameters:

  • fret_number (Integer)

Returns:



27
28
29
# File 'lib/tetsujin/instrument/guitar/string.rb', line 27

def [](fret_number)
  frets.find_by_fret_number(fret_number)
end

#fretsTetsujin::Instrument::Guitar::Frets



21
22
23
# File 'lib/tetsujin/instrument/guitar/string.rb', line 21

def frets
  @_frets ||= generate_frets
end

#play!(notes) ⇒ void

This method returns an undefined value.

Parameters:

  • notes (Enumerable<Tetsujin::Theory::Note>)

    each でループした際に Note オブジェクトが取得できる Enumerable



33
34
35
# File 'lib/tetsujin/instrument/guitar/string.rb', line 33

def play!(notes)
  notes.each { |note| frets.play!(note) }
end

#press!(fret_number) ⇒ void

This method returns an undefined value.

Parameters:

  • fret_number (Integer)


39
40
41
# File 'lib/tetsujin/instrument/guitar/string.rb', line 39

def press!(fret_number)
  frets.press!(fret_number)
end

#release!void

This method returns an undefined value.



44
45
46
# File 'lib/tetsujin/instrument/guitar/string.rb', line 44

def release!
  frets.release!
end