coltrane 3.4.2 → 4.1.0

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.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/.DS_Store +0 -0
  3. data/.ruby-version +1 -0
  4. data/.travis.yml +1 -1
  5. data/CHANGELOG.md +6 -0
  6. data/Gemfile +1 -1
  7. data/Gemfile.lock +88 -75
  8. data/bin/bundle +23 -14
  9. data/bin/console +24 -12
  10. data/bin/gambiarra +29 -0
  11. data/bin/old-coltrane +29 -0
  12. data/bin/setup +27 -6
  13. data/bin/thor +1 -1
  14. data/coltrane.gemspec +4 -4
  15. data/exe/coltrane +14 -55
  16. data/lib/.DS_Store +0 -0
  17. data/lib/coltrane/.DS_Store +0 -0
  18. data/lib/coltrane/commands.rb +4 -9
  19. data/lib/coltrane/commands/available_chord_representations.rb +9 -0
  20. data/lib/coltrane/commands/available_classic_scales.rb +9 -0
  21. data/lib/coltrane/commands/available_notable_progressions.rb +9 -0
  22. data/lib/coltrane/commands/available_representations.rb +9 -0
  23. data/lib/coltrane/commands/command.rb +3 -54
  24. data/lib/coltrane/commands/find_chord_by_notes.rb +9 -0
  25. data/lib/coltrane/commands/find_common_chords.rb +9 -0
  26. data/lib/coltrane/commands/find_progressions_from_chords.rb +9 -0
  27. data/lib/coltrane/commands/find_scale_by_chords.rb +9 -0
  28. data/lib/coltrane/commands/find_scale_by_notes.rb +9 -0
  29. data/lib/coltrane/commands/get_chords_from_notable_progression.rb +9 -0
  30. data/lib/coltrane/commands/get_chords_from_progression.rb +9 -0
  31. data/lib/coltrane/commands/get_chords_from_scale.rb +9 -0
  32. data/lib/coltrane/commands/get_chords_from_string.rb +11 -0
  33. data/lib/coltrane/commands/get_classic_scale.rb +9 -0
  34. data/lib/coltrane/commands/get_notes.rb +9 -0
  35. data/lib/coltrane/commands/get_notes_from_string.rb +9 -0
  36. data/lib/coltrane/commands/get_representation_chords.rb +18 -0
  37. data/lib/coltrane/commands/get_representation_notes.rb +12 -0
  38. data/lib/coltrane/commands/render.rb +9 -0
  39. data/lib/coltrane/renderers/text_renderer/hash_drawer.rb +1 -0
  40. data/lib/coltrane/renderers/text_renderer/representation_guitar_chord_drawer.rb +2 -2
  41. data/lib/coltrane/renderers/text_renderer/representation_piano_note_set_drawer.rb +1 -1
  42. data/lib/coltrane/renderers/text_renderer/theory_chord_drawer.rb +1 -2
  43. data/lib/coltrane/theory/classic_scales.rb +1 -1
  44. data/lib/coltrane/theory/interval.rb +1 -1
  45. data/lib/coltrane/ui.rb +8 -0
  46. data/lib/coltrane/ui/.DS_Store +0 -0
  47. data/lib/coltrane/ui/base_view.rb +9 -0
  48. data/lib/coltrane/ui/views/.DS_Store +0 -0
  49. data/lib/coltrane/ui/views/chords.rb +19 -0
  50. data/lib/coltrane/ui/views/custom_progression.rb +27 -0
  51. data/lib/coltrane/ui/views/find_chord_by_notes.rb +16 -0
  52. data/lib/coltrane/ui/views/find_chords_in_scale.rb +36 -0
  53. data/lib/coltrane/ui/views/find_common_chords_in_scales.rb +40 -0
  54. data/lib/coltrane/ui/views/find_progressions_from_chords.rb +14 -0
  55. data/lib/coltrane/ui/views/find_scale.rb +14 -0
  56. data/lib/coltrane/ui/views/find_scale_by_chords.rb +16 -0
  57. data/lib/coltrane/ui/views/find_scale_by_notes.rb +16 -0
  58. data/lib/coltrane/ui/views/index.rb +14 -0
  59. data/lib/coltrane/ui/views/notes.rb +20 -0
  60. data/lib/coltrane/ui/views/progressions.rb +18 -0
  61. data/lib/coltrane/ui/views/scales.rb +17 -0
  62. data/lib/coltrane/ui/views/show_chord.rb +21 -0
  63. data/lib/coltrane/ui/views/show_progression.rb +26 -0
  64. data/lib/coltrane/ui/views/show_scale.rb +26 -0
  65. data/lib/coltrane/version.rb +1 -1
  66. metadata +61 -26
  67. data/lib/coltrane/commands/chords.rb +0 -93
  68. data/lib/coltrane/commands/common_chords.rb +0 -33
  69. data/lib/coltrane/commands/errors.rb +0 -44
  70. data/lib/coltrane/commands/find_guitar_chord.rb +0 -25
  71. data/lib/coltrane/commands/find_progression.rb +0 -28
  72. data/lib/coltrane/commands/find_scale.rb +0 -39
  73. data/lib/coltrane/commands/notes.rb +0 -50
  74. data/lib/coltrane/commands/progression.rb +0 -28
  75. data/lib/coltrane/commands/scale.rb +0 -46
@@ -5,8 +5,7 @@ module Coltrane
5
5
  alias chord model
6
6
 
7
7
  def render
8
- "#{chord.name}: ".ljust(5) +
9
- TextRenderer.render(chord.notes, **options)
8
+ "#{chord.name}: ".ljust(5) + TextRenderer.render(chord.notes)
10
9
  end
11
10
  end
12
11
  end
@@ -45,7 +45,7 @@ module Coltrane
45
45
  alias blues blues_major
46
46
 
47
47
  def known_scales
48
- SCALES.keys + ['Major', 'Natural Minor']
48
+ ['Major', 'Natural Minor'] + SCALES.keys
49
49
  end
50
50
 
51
51
  # List of scales appropriate for search
@@ -133,7 +133,7 @@ module Coltrane
133
133
  end
134
134
 
135
135
  def clone(override_args = {})
136
- self.class.new({
136
+ self.class.new(**{
137
137
  semitones: semitones,
138
138
  letter_distance: letter_distance,
139
139
  compound: compound?
@@ -0,0 +1,8 @@
1
+ require 'paint'
2
+ require 'color'
3
+
4
+ require 'gambiarra'
5
+ require 'coltrane/commands'
6
+
7
+ require File.expand_path('../ui/base_view', __FILE__)
8
+ views = Dir[File.expand_path('../ui/views/*', __FILE__)].map { |view| require(view) }
Binary file
@@ -0,0 +1,9 @@
1
+ module Coltrane
2
+ module UI
3
+ class BaseView < Gambiarra::View
4
+ def self.render(view)
5
+ Commands::Render.run(view.render)
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,19 @@
1
+ module Coltrane
2
+ module UI
3
+ module Views
4
+ class Chords < BaseView
5
+ questions({
6
+ path: {
7
+ statement: 'What do you need',
8
+ options: [
9
+ 'show chord',
10
+ 'find chord by notes',
11
+ 'find chords in scale',
12
+ 'find common chords in scales'
13
+ ]
14
+ }
15
+ })
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,27 @@
1
+ module Coltrane
2
+ module UI
3
+ module Views
4
+ class CustomProgression < BaseView
5
+ questions({
6
+ progression_notation: {
7
+ statement: 'What is the progression? (Ex: I-vi-IV-V)'
8
+ },
9
+
10
+ representation: {
11
+ statement: 'How do you wanna see the chords?',
12
+ options: Commands::AvailableChordRepresentations.run
13
+ },
14
+
15
+ key: {
16
+ statement: 'What is the key?'
17
+ },
18
+ })
19
+
20
+ def render
21
+ chords = Commands::GetChordsFromProgression.run(*params.values_at(:progression_notation, :key))
22
+ Commands::GetRepresentationChords.run(params[:representation], chords)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,16 @@
1
+ module Coltrane
2
+ module UI
3
+ module Views
4
+ class FindChordByNotes < BaseView
5
+ questions({
6
+ notes: { statement: 'Which Notes?' }
7
+ })
8
+
9
+ def render
10
+ notes = Commands::GetNotesFromString.run(params[:notes])
11
+ Commands::FindChordByNotes.run(*notes)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,36 @@
1
+ require 'coltrane/ui/views/show_scale'
2
+
3
+ module Coltrane
4
+ module UI
5
+ module Views
6
+ class FindChordsInScale < ShowScale
7
+ questions({
8
+ chord_type: {
9
+ statement: 'Which kind of chords?',
10
+ options: ['tertian', 'all']
11
+ },
12
+
13
+ chord_size: {
14
+ statement: 'What is the size of the chords',
15
+ options: (3..7).to_a.map(&:to_s)
16
+ },
17
+
18
+ chord_representation: {
19
+ statement: 'How do you wanna see this',
20
+ options: Commands::AvailableChordRepresentations.run
21
+ },
22
+
23
+ representation: nil
24
+ })
25
+ def render
26
+ scale = Commands::GetClassicScale.run(*params.values_at(:scale, :tone))
27
+ chords = Commands::GetChordsFromScale.run(
28
+ scale,
29
+ *params.values_at(:chord_type, :chord_size)
30
+ )
31
+ Commands::GetRepresentationChords.run(params[:chord_representation], chords)
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,40 @@
1
+ module Coltrane
2
+ module UI
3
+ module Views
4
+ class FindCommonChordsInScales < BaseView
5
+ questions({
6
+ first_scale: {
7
+ statement: 'Choose the first scale',
8
+ options: Commands::AvailableClassicScales.run
9
+ },
10
+
11
+ first_scale_root: {
12
+ statement: 'Type the tone (note)'
13
+ },
14
+
15
+ second_scale: {
16
+ statement: 'Choose the second scale',
17
+ options: Commands::AvailableClassicScales.run
18
+ },
19
+
20
+ second_scale_root: {
21
+ statement: 'Type the tone (note)'
22
+ },
23
+
24
+ representation: {
25
+ statement: 'How do you wanna see the results?',
26
+ options: Commands::AvailableChordRepresentations.run
27
+ }
28
+ })
29
+
30
+ def render
31
+ scale_a = Commands::GetClassicScale.run(*params.values_at(:first_scale, :first_scale_root))
32
+ scale_b = Commands::GetClassicScale.run(*params.values_at(:second_scale, :second_scale_root))
33
+ chords = Commands::FindCommonChords.run(scale_a, scale_b)
34
+ rep_chords = Commands::GetRepresentationChords.run(params[:representation], chords)
35
+ { "Chords that exist in #{scale_a.full_name} and #{scale_b.full_name}" => rep_chords }
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,14 @@
1
+ module Coltrane
2
+ module UI
3
+ module Views
4
+ class FindProgressionsFromChords < BaseView
5
+ questions chords: { statement: 'Type the chords? (Ex: CM EM GM)' }
6
+
7
+ def render
8
+ chords = Commands::GetChordsFromString.run(params[:chords])
9
+ Commands::FindProgressionsFromChords.run(*chords)
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ module Coltrane
2
+ module UI
3
+ module Views
4
+ class FindScale < BaseView
5
+ questions({
6
+ path: {
7
+ statement: 'How do you wanna search',
8
+ options: ['find scale by chords', 'find scale by notes']
9
+ },
10
+ })
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,16 @@
1
+ module Coltrane
2
+ module UI
3
+ module Views
4
+ class FindScaleByChords < BaseView
5
+ questions({
6
+ chords: { statement: 'Which Chords?' }
7
+ })
8
+
9
+ def render
10
+ chords = Commands::GetChordsFromString.run(params[:chords])
11
+ Commands::FindScaleByChords.run(*chords)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ module Coltrane
2
+ module UI
3
+ module Views
4
+ class FindScaleByNotes < BaseView
5
+ questions({
6
+ notes: { statement: 'Which Notes?' }
7
+ })
8
+
9
+ def render
10
+ notes = Commands::GetNotesFromString.run(params[:notes])
11
+ Commands::FindScaleByNotes.run(*notes)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,14 @@
1
+ module Coltrane
2
+ module UI
3
+ module Views
4
+ class Index < BaseView
5
+ questions({
6
+ path: {
7
+ statement: "Welcome to Coltrane #{Coltrane::VERSION}",
8
+ options: %w[notes chords scales progressions exit]
9
+ }
10
+ })
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,20 @@
1
+ module Coltrane
2
+ module UI
3
+ module Views
4
+ class Notes < BaseView
5
+ questions({
6
+ notes: { statement: 'Which notes?' } ,
7
+ representation: {
8
+ statement: 'How to display?',
9
+ options: Commands::AvailableRepresentations.run
10
+ }
11
+ })
12
+
13
+ def render
14
+ notes = Commands::GetNotesFromString.run(params[:notes])
15
+ Commands::GetRepresentationNotes.run(params[:representation], notes)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,18 @@
1
+ module Coltrane
2
+ module UI
3
+ module Views
4
+ class Progressions < BaseView
5
+ questions({
6
+ path: {
7
+ statement: 'What do you need?',
8
+ options: [
9
+ 'show progression',
10
+ 'custom progression',
11
+ 'find progressions from chords'
12
+ ]
13
+ }
14
+ })
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,17 @@
1
+ module Coltrane
2
+ module UI
3
+ module Views
4
+ class Scales < BaseView
5
+ questions({
6
+ path: {
7
+ statement: 'What do you need?',
8
+ options: [
9
+ 'show scale',
10
+ 'find scale'
11
+ ]
12
+ }
13
+ })
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,21 @@
1
+ module Coltrane
2
+ module UI
3
+ module Views
4
+ class ShowChord < BaseView
5
+ questions({
6
+ chord: { statement: 'Which chord?' },
7
+ chord_representation: {
8
+ statement: 'How do you wanna see it?',
9
+ options: Commands::AvailableChordRepresentations.run
10
+ }
11
+ })
12
+
13
+ def render
14
+ chord = Commands::GetChordsFromString.run(params[:chord]).first
15
+ Commands::GetRepresentationChords.run(params[:chord_representation], [chord])
16
+ end
17
+
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,26 @@
1
+ module Coltrane
2
+ module UI
3
+ module Views
4
+ class ShowProgression < BaseView
5
+ questions({
6
+ progression: {
7
+ statement: 'What is the progression?',
8
+ options: Commands::AvailableNotableProgressions.run
9
+ },
10
+
11
+ representation: {
12
+ statement: 'How do you wanna see the chords?',
13
+ options: Commands::AvailableChordRepresentations.run
14
+ },
15
+
16
+ root: { statement: 'Start at which note? (Ex: C; D#; Fb)' }
17
+ })
18
+
19
+ def render
20
+ chords = Commands::GetChordsFromNotableProgression.run(*params.values_at(:progression, :root))
21
+ Commands::GetRepresentationChords.run(params[:representation], chords)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ module Coltrane
2
+ module UI
3
+ module Views
4
+ class ShowScale < BaseView
5
+ questions({
6
+ scale: {
7
+ statement: 'Which Scale?',
8
+ options: Commands::AvailableClassicScales.run
9
+ },
10
+
11
+ tone: { statement: 'What is the root of the scale?' },
12
+
13
+ representation: {
14
+ statement: 'How to display?',
15
+ options: Commands::AvailableRepresentations.run
16
+ }
17
+ })
18
+
19
+ def render
20
+ scale = Commands::GetClassicScale.run(*params.values_at(:scale, :tone))
21
+ Commands::GetRepresentationNotes.run(params[:representation], scale.notes)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Coltrane
4
- VERSION = '3.4.2'
4
+ VERSION = '4.1.0'
5
5
  end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coltrane
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.2
4
+ version: 4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pedro Maciel
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-09-26 00:00:00.000000000 Z
11
+ date: 2021-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: tty-reader
14
+ name: dry-monads
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.2'
19
+ version: '0.4'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.2'
26
+ version: '0.4'
27
27
  - !ruby/object:Gem::Dependency
28
- name: dry-monads
28
+ name: gambiarra
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.4'
33
+ version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.4'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: paint
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -67,33 +67,33 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.8'
69
69
  - !ruby/object:Gem::Dependency
70
- name: pedrozath-mercenary
70
+ name: activesupport
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '='
73
+ - - ">"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.3.8
75
+ version: '5.2'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '='
80
+ - - ">"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.3.8
82
+ version: '5.2'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: bundler
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '1.14'
89
+ version: 2.2.5
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '1.14'
96
+ version: 2.2.5
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -116,10 +116,12 @@ executables:
116
116
  extensions: []
117
117
  extra_rdoc_files: []
118
118
  files:
119
+ - ".DS_Store"
119
120
  - ".bundle/config"
120
121
  - ".gitignore"
121
122
  - ".rspec"
122
123
  - ".rubocop.yml"
124
+ - ".ruby-version"
123
125
  - ".travis.yml"
124
126
  - CHANGELOG.md
125
127
  - CODE_OF_CONDUCT.md
@@ -140,6 +142,7 @@ files:
140
142
  - bin/console
141
143
  - bin/erubis
142
144
  - bin/flay
145
+ - bin/gambiarra
143
146
  - bin/gitlab
144
147
  - bin/guard
145
148
  - bin/htmldiff
@@ -148,6 +151,7 @@ files:
148
151
  - bin/ldiff
149
152
  - bin/listen
150
153
  - bin/nokogiri
154
+ - bin/old-coltrane
151
155
  - bin/opal
152
156
  - bin/opal-build
153
157
  - bin/opal-mspec
@@ -172,18 +176,30 @@ files:
172
176
  - coltrane.gemspec
173
177
  - config.ru
174
178
  - exe/coltrane
179
+ - lib/.DS_Store
175
180
  - lib/coltrane.rb
181
+ - lib/coltrane/.DS_Store
176
182
  - lib/coltrane/commands.rb
177
- - lib/coltrane/commands/chords.rb
183
+ - lib/coltrane/commands/available_chord_representations.rb
184
+ - lib/coltrane/commands/available_classic_scales.rb
185
+ - lib/coltrane/commands/available_notable_progressions.rb
186
+ - lib/coltrane/commands/available_representations.rb
178
187
  - lib/coltrane/commands/command.rb
179
- - lib/coltrane/commands/common_chords.rb
180
- - lib/coltrane/commands/errors.rb
181
- - lib/coltrane/commands/find_guitar_chord.rb
182
- - lib/coltrane/commands/find_progression.rb
183
- - lib/coltrane/commands/find_scale.rb
184
- - lib/coltrane/commands/notes.rb
185
- - lib/coltrane/commands/progression.rb
186
- - lib/coltrane/commands/scale.rb
188
+ - lib/coltrane/commands/find_chord_by_notes.rb
189
+ - lib/coltrane/commands/find_common_chords.rb
190
+ - lib/coltrane/commands/find_progressions_from_chords.rb
191
+ - lib/coltrane/commands/find_scale_by_chords.rb
192
+ - lib/coltrane/commands/find_scale_by_notes.rb
193
+ - lib/coltrane/commands/get_chords_from_notable_progression.rb
194
+ - lib/coltrane/commands/get_chords_from_progression.rb
195
+ - lib/coltrane/commands/get_chords_from_scale.rb
196
+ - lib/coltrane/commands/get_chords_from_string.rb
197
+ - lib/coltrane/commands/get_classic_scale.rb
198
+ - lib/coltrane/commands/get_notes.rb
199
+ - lib/coltrane/commands/get_notes_from_string.rb
200
+ - lib/coltrane/commands/get_representation_chords.rb
201
+ - lib/coltrane/commands/get_representation_notes.rb
202
+ - lib/coltrane/commands/render.rb
187
203
  - lib/coltrane/renderers.rb
188
204
  - lib/coltrane/renderers/renderer.rb
189
205
  - lib/coltrane/renderers/text_renderer.rb
@@ -241,6 +257,26 @@ files:
241
257
  - lib/coltrane/theory/scale_search_result.rb
242
258
  - lib/coltrane/theory/scale_set.rb
243
259
  - lib/coltrane/theory/voicing.rb
260
+ - lib/coltrane/ui.rb
261
+ - lib/coltrane/ui/.DS_Store
262
+ - lib/coltrane/ui/base_view.rb
263
+ - lib/coltrane/ui/views/.DS_Store
264
+ - lib/coltrane/ui/views/chords.rb
265
+ - lib/coltrane/ui/views/custom_progression.rb
266
+ - lib/coltrane/ui/views/find_chord_by_notes.rb
267
+ - lib/coltrane/ui/views/find_chords_in_scale.rb
268
+ - lib/coltrane/ui/views/find_common_chords_in_scales.rb
269
+ - lib/coltrane/ui/views/find_progressions_from_chords.rb
270
+ - lib/coltrane/ui/views/find_scale.rb
271
+ - lib/coltrane/ui/views/find_scale_by_chords.rb
272
+ - lib/coltrane/ui/views/find_scale_by_notes.rb
273
+ - lib/coltrane/ui/views/index.rb
274
+ - lib/coltrane/ui/views/notes.rb
275
+ - lib/coltrane/ui/views/progressions.rb
276
+ - lib/coltrane/ui/views/scales.rb
277
+ - lib/coltrane/ui/views/show_chord.rb
278
+ - lib/coltrane/ui/views/show_progression.rb
279
+ - lib/coltrane/ui/views/show_scale.rb
244
280
  - lib/coltrane/version.rb
245
281
  - lib/core_ext.rb
246
282
  homepage: http://github.com/pedrozath/coltrane
@@ -263,8 +299,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
263
299
  - !ruby/object:Gem::Version
264
300
  version: '0'
265
301
  requirements: []
266
- rubyforge_project:
267
- rubygems_version: 2.7.7
302
+ rubygems_version: 3.0.8
268
303
  signing_key:
269
304
  specification_version: 4
270
305
  summary: It deals with all sorts of calculations around music theory and allows for