chordy 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,83 @@
1
+ # encoding: utf-8
2
+
3
+ require 'chord'
4
+
5
+ class GSharp < Chord
6
+ def play_major
7
+ [4, 3, 1, 1, 1, 4]
8
+ end
9
+
10
+ def play_minor
11
+ [-1, 2, 1, 4, 4, 4]
12
+ end
13
+
14
+ def play_dominant_7
15
+ [4, 3, 1, 1, 1, 2]
16
+ end
17
+
18
+ def play_dominant_7_5
19
+ [-1, -1, 0, 1, 1, 2]
20
+ end
21
+
22
+ def play_major_6
23
+ [4, 3, 1, 1, 1, 1]
24
+ end
25
+
26
+ def play_major_7
27
+ [-1, 3, 1, 1, 1, 3]
28
+ end
29
+
30
+ def play_major_9
31
+ [-1, 1, 1, 1, 1, 2]
32
+ end
33
+
34
+ def play_minor_6
35
+ [-1, -1, 1, 1, 0, 1]
36
+ end
37
+
38
+ def play_minor_7
39
+ [0, 0, 2, 2, 1, 3]
40
+ end
41
+
42
+ def play_half_diminished_7
43
+ [2, 2, 0, 1, 0, 2]
44
+ end
45
+
46
+ def play_minor_major_7
47
+ [-1, -1, 1, 1, 0, 3]
48
+ end
49
+
50
+ def play_augmented_5
51
+ [0, 3, 2, 1, 1, 0]
52
+ end
53
+
54
+ def play_augmented_7
55
+ [-1, 3, 2, 1, 1, 2]
56
+ end
57
+
58
+ def play_augmented_major_7
59
+ [0, 3, 2, 1, 1, 3]
60
+ end
61
+
62
+ def play_diminished_5
63
+ [4, 5, 0, 4, 3, 4]
64
+ end
65
+
66
+ def play_diminished_7
67
+ [-1, -1, 0, 1, 0, 1]
68
+ end
69
+
70
+ def play_diminished_9
71
+ [2, 0, 1, 1, 1, 2]
72
+ end
73
+
74
+ def play_suspended_4
75
+ [4, 4, 6, 6, 4, 4]
76
+ end
77
+
78
+ def play_suspended_7
79
+ [4, 4, 4, 6, 4, 4]
80
+ end
81
+ end
82
+
83
+ AFlat = GSharp
@@ -0,0 +1,13 @@
1
+ # encoding: utf-8
2
+
3
+ class Section
4
+ def initialize(title="", separator_length=40)
5
+ @title = title
6
+ @separator_length = separator_length
7
+ end
8
+
9
+ def to_s
10
+ title_str = @title.to_s
11
+ title_str.rjust(title_str.length + 2, "-").ljust(@separator_length, "-")
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ # encoding: utf-8
2
+
3
+ class Text
4
+ def initialize(text)
5
+ @text = text
6
+ end
7
+
8
+ def to_s
9
+ @text
10
+ end
11
+ end
@@ -0,0 +1,109 @@
1
+ # encoding: utf-8
2
+
3
+ module Tuning
4
+ def is_tuning? tuning
5
+ Tuning.instance_methods.include? tuning.to_s
6
+ true
7
+ end
8
+
9
+ def tuning_6_standard
10
+ ["e", "a", "d", "g", "b", "e"]
11
+ end
12
+
13
+ def tuning_6_a
14
+ ["a", "d", "g", "c", "e", "a"]
15
+ end
16
+
17
+ def tuning_6_b
18
+ ["b", "e", "a", "d", "f#", "b"]
19
+ end
20
+
21
+ def tuning_6_c
22
+ ["c", "f", "a#", "d#", "g", "c"]
23
+ end
24
+
25
+ def tuning_6_d
26
+ ["d", "g", "c", "f", "a", "d"]
27
+ end
28
+
29
+ def tuning_6_drop_a
30
+ ["a", "e", "a", "d", "f#", "b"]
31
+ end
32
+
33
+ def tuning_6_drop_c
34
+ ["c", "g", "c", "f", "a", "d"]
35
+ end
36
+
37
+ def tuning_6_drop_d
38
+ ["d", "a", "d", "g", "b", "e"]
39
+ end
40
+
41
+ def tuning_7_standard
42
+ ["b", "e", "a", "d", "g", "b", "e"]
43
+ end
44
+
45
+ def tuning_7_a
46
+ ["a", "d", "g", "c", "f", "a", "d"]
47
+ end
48
+
49
+ def tuning_7_a_sharp
50
+ ["a#", "d#", "g#", "c#", "f#", "a#", "d#"]
51
+ end
52
+
53
+ def tuning_7_c
54
+ ["c", "f", "a#", "d#", "g#", "c", "f"]
55
+ end
56
+
57
+ def tuning_7_d
58
+ ["d", "g", "c", "f", "a#", "d", "g"]
59
+ end
60
+
61
+ def tuning_7_drop_a
62
+ ["a", "e", "a", "d", "f#", "b", "e"]
63
+ end
64
+
65
+ def tuning_7_drop_g
66
+ ["g", "d", "g", "c", "f", "a", "d"]
67
+ end
68
+
69
+ def tuning_7_drop_g_sharp
70
+ ["g#", "d#", "g#", "c#", "f#", "a#", "d#"]
71
+ end
72
+
73
+ def tuning_8_standard
74
+ ["f#", "b", "e", "a", "d", "g", "b", "e"]
75
+ end
76
+
77
+ def tuning_8_a
78
+ ["a", "d", "g", "c", "f", "a", "d", "g"]
79
+ end
80
+
81
+ def tuning_8_e
82
+ ["e", "a", "d", "g", "c", "f", "a", "d"]
83
+ end
84
+
85
+ def tuning_8_f
86
+ ["fb", "bb", "eb", "ab", "db", "gb", "bb", "eb"]
87
+ end
88
+
89
+ def tuning_8_drop_d_sharp
90
+ ["eb", "bb", "eb", "ab", "db", "gb", "bb", "eb"]
91
+ end
92
+
93
+ def tuning_8_drop_e
94
+ ["e", "b", "e", "a", "d", "g", "b", "e"]
95
+ end
96
+
97
+ alias :tuning_standard :tuning_6_standard
98
+ alias :tuning_a :tuning_6_a
99
+ alias :tuning_b :tuning_6_b
100
+ alias :tuning_c :tuning_6_c
101
+ alias :tuning_d :tuning_6_d
102
+ alias :tuning_drop_a :tuning_6_drop_a
103
+ alias :tuning_drop_c :tuning_6_drop_c
104
+ alias :tuning_drop_d :tuning_6_drop_d
105
+ alias :tuning_7 :tuning_7_standard
106
+ alias :tuning_7_a! :tuning_7_a_sharp
107
+ alias :tuning_7_drop_g! :tuning_7_drop_g_sharp
108
+ alias :tuning_8_drop_d! :tuning_8_drop_d_sharp
109
+ end
@@ -0,0 +1,21 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+
6
+ begin
7
+ Bundler.setup(:default, :development)
8
+ rescue Bundler::BundlerError => e
9
+ $stderr.puts e.message
10
+ $stderr.puts "Run `bundle install` to install missing gems"
11
+ exit e.status_code
12
+ end
13
+ require 'test/unit'
14
+ require 'shoulda'
15
+
16
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
17
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
18
+ require 'chordy'
19
+
20
+ class Test::Unit::TestCase
21
+ end
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+
3
+ require 'helper'
4
+
5
+ class TestChordy < Test::Unit::TestCase
6
+ should "have private methods and constants for all chord flags" do
7
+ c = Chord.new(:M, 6)
8
+ methods = c.private_methods
9
+ flags = Chord::CHORD_FLAGS
10
+ consts = Chord.constants
11
+
12
+ flags.each { |f| assert(methods.include?(f.to_sym), "no method '#{f}' in Chord") }
13
+ flags.each { |f| assert(consts.include?(f.upcase.to_sym), "no constant '#{f}' in Chord") }
14
+ end
15
+
16
+ should "knows all chord types" do
17
+ short_chords = Chord.short_chords
18
+
19
+ short_chords.keys.each { |k| assert_not_nil(Chord.new(k, 6)) }
20
+ short_chords.values.each { |k| assert_not_nil(Chord.new(k, 6)) }
21
+ end
22
+
23
+ should "has all chord types for all chord families" do
24
+ chord_families = [C, CSharp, DFlat, D, DSharp, EFlat, E, F, FSharp, GFlat, G, GSharp, AFlat, A, ASharp, B]
25
+
26
+ short_chords = Chord.short_chords.values
27
+ short_chord_methods = short_chords.map { |c| "play_" + c.to_s }
28
+
29
+ chord_families.each do |family|
30
+ family_methods = family.instance_methods
31
+ short_chord_methods.each { |method| assert(family_methods.include?(method.to_sym), "no method '#{method}' in #{family}") }
32
+ end
33
+ end
34
+
35
+ should "know all effects" do
36
+ # TODO implement
37
+ true
38
+ end
39
+
40
+ should "have 6,7 or 8 strings" do
41
+ # TODO implement
42
+ true
43
+ end
44
+
45
+ should "know strings at different positions" do
46
+ # TODO implement
47
+ true
48
+ end
49
+ end
metadata ADDED
@@ -0,0 +1,187 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: chordy
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.7.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Akhil Wali
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-12-04 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: shoulda
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: 10.0.2
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 10.0.2
46
+ - !ruby/object:Gem::Dependency
47
+ name: rdoc
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '3.12'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '3.12'
62
+ - !ruby/object:Gem::Dependency
63
+ name: bundler
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: 1.2.3
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 1.2.3
78
+ - !ruby/object:Gem::Dependency
79
+ name: jeweler
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: 1.8.4
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: 1.8.4
94
+ - !ruby/object:Gem::Dependency
95
+ name: simplecov
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: ruby-debug19
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ description: Chordy is a DSL written in Ruby to print guitar chords diagrams
127
+ email: akhil.wali.10@gmail.com
128
+ executables: []
129
+ extensions: []
130
+ extra_rdoc_files:
131
+ - LICENSE.rdoc
132
+ - README.rdoc
133
+ files:
134
+ - .travis.yml
135
+ - Gemfile
136
+ - LICENSE.rdoc
137
+ - README.rdoc
138
+ - Rakefile
139
+ - lib/a_chords.rb
140
+ - lib/a_sharp_chords.rb
141
+ - lib/b_chords.rb
142
+ - lib/c_chords.rb
143
+ - lib/c_sharp_chords.rb
144
+ - lib/chord.rb
145
+ - lib/chordy.rb
146
+ - lib/chordy_script.rb
147
+ - lib/d_chords.rb
148
+ - lib/d_sharp_chords.rb
149
+ - lib/e_chords.rb
150
+ - lib/f_chords.rb
151
+ - lib/f_sharp_chords.rb
152
+ - lib/g_chords.rb
153
+ - lib/g_sharp_chords.rb
154
+ - lib/section.rb
155
+ - lib/text.rb
156
+ - lib/tuning.rb
157
+ - test/helper.rb
158
+ - test/test_chordy.rb
159
+ homepage: http://github.com/darth10/chordy
160
+ licenses:
161
+ - MIT
162
+ post_install_message:
163
+ rdoc_options: []
164
+ require_paths:
165
+ - lib
166
+ required_ruby_version: !ruby/object:Gem::Requirement
167
+ none: false
168
+ requirements:
169
+ - - ! '>='
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ segments:
173
+ - 0
174
+ hash: -257714063
175
+ required_rubygems_version: !ruby/object:Gem::Requirement
176
+ none: false
177
+ requirements:
178
+ - - ! '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ requirements: []
182
+ rubyforge_project: chordy
183
+ rubygems_version: 1.8.24
184
+ signing_key:
185
+ specification_version: 3
186
+ summary: DSL for guitar chords
187
+ test_files: []