fretboard 1.3.0 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,21 +1,38 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # require 'active_support/core_ext/hash'
2
4
 
3
5
  require 'fretboard/console'
4
6
 
5
7
  module Fretboard
6
- class Builder
8
+ class Builder # rubocop:disable Style/Documentation, Metrics/ClassLength
7
9
  # fretboard = Fretboard::Builder.new(:standart)
8
10
  # fretboard = Fretboard::Builder.standart
9
- # fretboard = Fretboard::Builder.drop_c
10
- # fretboard = Fretboard::Builder.drop_d
11
- # fretboard = Fretboard::Builder.double_drop_d
11
+ # fretboard = Fretboard::Builder.tuning_a
12
12
  # fretboard = Fretboard::Builder.open_a
13
+ # fretboard = Fretboard::Builder.drop_a
14
+ # fretboard = Fretboard::Builder.drop_a_sharp
15
+ # fretboard = Fretboard::Builder.drop_a_flat
16
+ # fretboard = Fretboard::Builder.tuning_b
17
+ # fretboard = Fretboard::Builder.open_b
18
+ # fretboard = Fretboard::Builder.drop_b
19
+ # fretboard = Fretboard::Builder.drop_b_flat
20
+ # fretboard = Fretboard::Builder.tuning_c
13
21
  # fretboard = Fretboard::Builder.open_c
22
+ # fretboard = Fretboard::Builder.drop_c
23
+ # fretboard = Fretboard::Builder.tuning_d
14
24
  # fretboard = Fretboard::Builder.open_d
15
25
  # fretboard = Fretboard::Builder.open_d_minor
26
+ # fretboard = Fretboard::Builder.drop_d
27
+ # fretboard = Fretboard::Builder.double_drop_d
28
+ # fretboard = Fretboard::Builder.modal_d
29
+ # fretboard = Fretboard::Builder.open_e
30
+ # fretboard = Fretboard::Builder.tuning_f
31
+ # fretboard = Fretboard::Builder.open_f
32
+ # fretboard = Fretboard::Builder.tuning_g
16
33
  # fretboard = Fretboard::Builder.open_g
17
34
  # fretboard = Fretboard::Builder.open_g_minor
18
- # fretboard = Fretboard::Builder.modal_d
35
+ # fretboard = Fretboard::Builder.drop_g_sharp
19
36
  # fretboard = Fretboard::Builder.modal_g
20
37
 
21
38
  # fretboard.build
@@ -26,16 +43,31 @@ module Fretboard
26
43
 
27
44
  # METHODS_NAMES = %i[
28
45
  # standart
29
- # drop_c
30
- # drop_d
31
- # double_drop_d
46
+ # tuning_a
32
47
  # open_a
48
+ # drop_a
49
+ # drop_a_sharp
50
+ # drop_a_flat
51
+ # tuning_b
52
+ # open_b
53
+ # drop_b
54
+ # drop_b_flat
55
+ # tuning_c
33
56
  # open_c
57
+ # drop_c
58
+ # tuning_d
34
59
  # open_d
35
60
  # open_d_minor
61
+ # drop_d
62
+ # double_drop_d
63
+ # modal_d
64
+ # open_e
65
+ # tuning_f
66
+ # open_f
67
+ # tuning_g
36
68
  # open_g
37
69
  # open_g_minor
38
- # modal_d
70
+ # drop_g_sharp
39
71
  # modal_g
40
72
  # ].freeze
41
73
 
@@ -51,26 +83,58 @@ module Fretboard
51
83
  new(:standart, number_of_frets)
52
84
  end
53
85
 
54
- def self.drop_c(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
55
- new(:drop_c, number_of_frets)
86
+ def self.tuning_a(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
87
+ new(:tuning_a, number_of_frets)
56
88
  end
57
89
 
58
- def self.drop_d(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
59
- new(:drop_d, number_of_frets)
90
+ def self.open_a(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
91
+ new(:open_a, number_of_frets)
60
92
  end
61
93
 
62
- def self.double_drop_d(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
63
- new(:double_drop_d, number_of_frets)
94
+ def self.drop_a(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
95
+ new(:drop_a, number_of_frets)
64
96
  end
65
97
 
66
- def self.open_a(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
67
- new(:open_a, number_of_frets)
98
+ def self.drop_a_sharp(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
99
+ new(:drop_a_sharp, number_of_frets)
100
+ end
101
+
102
+ def self.drop_a_flat(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
103
+ new(:drop_a_flat, number_of_frets)
104
+ end
105
+
106
+ def self.tuning_b(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
107
+ new(:tuning_b, number_of_frets)
108
+ end
109
+
110
+ def self.open_b(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
111
+ new(:open_b, number_of_frets)
112
+ end
113
+
114
+ def self.drop_b(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
115
+ new(:drop_b, number_of_frets)
116
+ end
117
+
118
+ def self.drop_b_flat(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
119
+ new(:drop_b_flat, number_of_frets)
120
+ end
121
+
122
+ def self.tuning_c(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
123
+ new(:tuning_c, number_of_frets)
68
124
  end
69
125
 
70
126
  def self.open_c(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
71
127
  new(:open_c, number_of_frets)
72
128
  end
73
129
 
130
+ def self.drop_c(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
131
+ new(:drop_c, number_of_frets)
132
+ end
133
+
134
+ def self.tuning_d(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
135
+ new(:tuning_d, number_of_frets)
136
+ end
137
+
74
138
  def self.open_d(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
75
139
  new(:open_d, number_of_frets)
76
140
  end
@@ -79,6 +143,34 @@ module Fretboard
79
143
  new(:open_d_minor, number_of_frets)
80
144
  end
81
145
 
146
+ def self.drop_d(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
147
+ new(:drop_d, number_of_frets)
148
+ end
149
+
150
+ def self.double_drop_d(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
151
+ new(:double_drop_d, number_of_frets)
152
+ end
153
+
154
+ def self.modal_d(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
155
+ new(:modal_d, number_of_frets)
156
+ end
157
+
158
+ def self.open_e(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
159
+ new(:open_e, number_of_frets)
160
+ end
161
+
162
+ def self.tuning_f(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
163
+ new(:tuning_f, number_of_frets)
164
+ end
165
+
166
+ def self.open_f(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
167
+ new(:open_f, number_of_frets)
168
+ end
169
+
170
+ def self.tuning_g(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
171
+ new(:tuning_g, number_of_frets)
172
+ end
173
+
82
174
  def self.open_g(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
83
175
  new(:open_g, number_of_frets)
84
176
  end
@@ -87,8 +179,8 @@ module Fretboard
87
179
  new(:open_g_minor, number_of_frets)
88
180
  end
89
181
 
90
- def self.modal_d(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
91
- new(:modal_d, number_of_frets)
182
+ def self.drop_g_sharp(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
183
+ new(:drop_g_sharp, number_of_frets)
92
184
  end
93
185
 
94
186
  def self.modal_g(number_of_frets = DEFAULT_NUMBER_OF_FRETS)
@@ -102,7 +194,7 @@ module Fretboard
102
194
  @data = {}
103
195
  end
104
196
 
105
- def build(sharp_or_flat: :both)
197
+ def build(sharp_or_flat: :both) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
106
198
  unless Fretboard::Tunings.exists?(@tuning)
107
199
  Fretboard::Console.danger('Unable to detect guitar tuning')
108
200
  return
@@ -143,7 +235,7 @@ module Fretboard
143
235
  puts 'done'
144
236
  end
145
237
 
146
- def draw(sharp_or_flat: :both)
238
+ def draw(sharp_or_flat: :both) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
147
239
  unless @data.any?
148
240
  Fretboard::Console.danger('Create the data')
149
241
  return
@@ -163,9 +255,10 @@ module Fretboard
163
255
  open_note = string_notes[0]
164
256
 
165
257
  if open_note.is_a?(Array)
166
- open_note = if sharp_or_flat == :both
258
+ open_note = case sharp_or_flat
259
+ when :both
167
260
  open_note.join('/')
168
- elsif sharp_or_flat == :sharp
261
+ when :sharp
169
262
  open_note.first
170
263
  else
171
264
  open_note.last
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'colorize'
2
4
  require 'terminal-table'
3
5
 
4
6
  module Fretboard
5
- class Console
7
+ class Console # rubocop:disable Style/Documentation
6
8
  def self.log(text)
7
9
  new(text, nil).print
8
10
  end
@@ -1,5 +1,7 @@
1
- module Fretboard
2
- module Constants
3
- # Fretboard::Constants.constants
4
- end
5
- end
1
+ # frozen_string_literal: true
2
+
3
+ # module Fretboard
4
+ # module Constants
5
+ # # Fretboard::Constants.constants
6
+ # end
7
+ # end
@@ -1,20 +1,21 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'fretboard/notes'
2
4
 
3
5
  module Fretboard
4
- class Note
6
+ class Note # rubocop:disable Style/Documentation
5
7
  # Fretboard::Note.next_for('C')
6
8
  # Fretboard::Note.next_for(['F#', 'Gb'])
7
9
  # Fretboard::Note.next_for('F#/Gb')
8
10
 
9
- def self.next_for(note, sharp_or_flat: :both)
10
- all_notes = Fretboard::Notes.all(
11
- sharp_or_flat
12
- )
11
+ def self.next_for(note, sharp_or_flat: :both) # rubocop:disable Metrics/MethodLength
12
+ all_notes = Fretboard::Notes.all(sharp_or_flat)
13
13
 
14
14
  if note.is_a?(Array)
15
- note = if sharp_or_flat == :both
15
+ note = case sharp_or_flat
16
+ when :both
16
17
  note.join('/')
17
- elsif sharp_or_flat == :sharp
18
+ when :sharp
18
19
  note.first
19
20
  else
20
21
  note.last
@@ -1,47 +1,35 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Fretboard
2
- class Notes
4
+ class Notes # rubocop:disable Style/Documentation
3
5
  # Fretboard::Notes.all(:both)
4
6
  # Fretboard::Notes.all(:sharp)
5
7
  # Fretboard::Notes.all(:flat)
6
8
 
7
9
  BASIS_NOTES = {
8
10
  1 => 'C',
9
- 2 => [
10
- 'C#',
11
- 'Db'
12
- ],
11
+ 2 => ['C#', 'Db'],
13
12
  3 => 'D',
14
- 4 => [
15
- 'D#',
16
- 'Eb'
17
- ],
13
+ 4 => ['D#', 'Eb'],
18
14
  5 => 'E',
19
15
  6 => 'F',
20
- 7 => [
21
- 'F#',
22
- 'Gb'
23
- ],
16
+ 7 => ['F#', 'Gb'],
24
17
  8 => 'G',
25
- 9 => [
26
- 'G#',
27
- 'Ab'
28
- ],
18
+ 9 => ['G#', 'Ab'],
29
19
  10 => 'A',
30
- 11 => [
31
- 'A#',
32
- 'Bb'
33
- ],
20
+ 11 => ['A#', 'Bb'],
34
21
  12 => 'B'
35
22
  }.freeze
36
23
 
37
- def self.all(sharp_or_flat = :sharp)
24
+ def self.all(sharp_or_flat = :sharp) # rubocop:disable Metrics/MethodLength
38
25
  BASIS_NOTES.map do |_key, value|
39
26
  result = value
40
27
 
41
28
  if value.is_a?(Array)
42
- result = if sharp_or_flat == :both
29
+ result = case sharp_or_flat
30
+ when :both
43
31
  value.join('/')
44
- elsif sharp_or_flat == :sharp
32
+ when :sharp
45
33
  value.first
46
34
  else
47
35
  value.last
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_support/core_ext'
2
4
  require 'optparse'
3
5
 
@@ -7,7 +9,7 @@ require 'fretboard/note'
7
9
  require 'fretboard/tunings'
8
10
 
9
11
  module Fretboard
10
- class Parser
12
+ class Parser # rubocop:disable Style/Documentation
11
13
  attr_reader :args
12
14
 
13
15
  def self.parse(args)
@@ -26,7 +28,7 @@ module Fretboard
26
28
 
27
29
  private
28
30
 
29
- def parser
31
+ def parser # rubocop:disable Metrics/MethodLength
30
32
  OptionParser.new do |opts|
31
33
  opts.banner = 'Usage: fretboard [options]'
32
34