fretboard 1.3.0 → 1.4.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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