JoergWMittag-akkordarbeit 0.0.1

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.
data/LICENSE.rdoc ADDED
@@ -0,0 +1,22 @@
1
+ = The MIT License
2
+
3
+ * Copyright (c) 2009 Jörg W Mittag <mailto:JoergWMittag+Akkordarbeit@GoogleMail.Com>
4
+ * Copyright (c) 2009 Marc Rummel <mailto:Marc.Rummel+Akkordarbeit@GoogleMail.Com>
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in
14
+ all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+ THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,38 @@
1
+ = Abstract
2
+
3
+ Akkordarbeit[https://JoergWMittag.GitHub.Com/akkordarbeit/] is a
4
+ program for formatting simple leadsheets in a simplified ChordPro
5
+ format to various other formats such as HTML or plaintext.
6
+
7
+ ---
8
+
9
+ = What
10
+
11
+ This program converts leadsheets and songsheets written in a
12
+ subset of the widely used
13
+ ChordPro[http://Vromans.Org/johan/projects/Chordii/chordpro/]
14
+ file format into other formats, more suitable for printing or
15
+ publishing. Currently, the supported formats are plaintext and
16
+ HTML.
17
+
18
+ Akkordarbeit only supports a very small subset of the ChordPro
19
+ format. Specifically, it only supports song lines, no directives.
20
+
21
+ = Installation
22
+
23
+ gem install JoergWMittag-akkordarbeit
24
+
25
+ = Usage
26
+
27
+ akkordarbeit -f html -i input.cho -o output.html
28
+
29
+ = Acknowledgements
30
+
31
+ Akkordarbeit would not be possible without the original Chord
32
+ utility.
33
+
34
+ = License
35
+
36
+ Akkordarbeit is licensed under the {MIT X11 License}[https://GitHub.Com/JoergWMittag/Akkordarbeit/blob/master/LICENSE.rdoc].
37
+
38
+ :include: LICENSE.rdoc
data/bin/akkordarbeit ADDED
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/env ruby
2
+ # vim: fileencoding=UTF-8 ft=ruby syn=ruby ts=2 sw=2 ai eol et si
3
+
4
+ # Copyright (c) 2009 Jörg W Mittag <mailto:JoergWMittag+Akkordarbeit@GoogleMail.Com>
5
+ # Copyright (c) 2009 Marc Rummel <mailto:Marc.Rummel+Akkordarbeit@GoogleMail.Com>
6
+ # This code is licensed under the terms of the MIT License (see LICENSE.rdoc)
7
+
8
+ libdir = File.expand_path(File.join File.dirname(File.expand_path(__FILE__).gsub(/(.*)bin.*?/, '\1')), 'lib')
9
+ $LOAD_PATH.unshift libdir unless $LOAD_PATH.include? libdir
10
+
11
+ require 'optparse'
12
+ require 'akkordarbeit'
13
+
14
+ module Akkordarbeit
15
+ class Main
16
+ def initialize args
17
+ @args = args
18
+ @options = { :format => 'HTML', :input => $stdin, :output => $stdout }
19
+ @option_parser = OptionParser.new do |opts|
20
+ opts.banner = 'Usage: akkordarbeit -f <FORMAT> -i <INPUT> -o <OUTPUT>'
21
+ opts.on('-f', '--format [FORMAT]', 'Use output format <FORMAT> instead of HTML') do |format|
22
+ @options[:format] = format
23
+ end
24
+ opts.on('-i', '--input [INPUTFILE]', 'Use Filename instead of STDIN') do |file|
25
+ @options[:input] = open file
26
+ end
27
+ opts.on('-o', '--output [OUTPUTFILE]', 'Use Filename instead of STDOUT') do |file|
28
+ @options[:output] = open file, 'w'
29
+ end
30
+ end
31
+ end
32
+
33
+ def run!
34
+ @option_parser.parse! @args
35
+ parsetree = Parser.new.parse @options[:input].gets(nil)
36
+ output = case @options[:format]
37
+ when /html/i
38
+ HtmlFormatter.new.format parsetree
39
+ when /text/i
40
+ TextFormatter.new.format parsetree
41
+ end
42
+ @options[:output].puts output
43
+ ensure
44
+ @options[:input].close
45
+ @options[:output].close
46
+ end
47
+
48
+ def self.run!
49
+ new(ARGV).run!
50
+ end
51
+ end
52
+
53
+ Main.run!
54
+ end
@@ -0,0 +1,172 @@
1
+ Feature: HTML Output
2
+ In order to view the chord files
3
+ As a user
4
+ I want to get HTML output
5
+
6
+ Scenario: HTML Output of a simple Song
7
+ Given the parsetree
8
+ """
9
+ [
10
+ [
11
+ ['[D]', 'Do what I say, ', '[Em]', 'or I will suffer']
12
+ ]
13
+ ]
14
+ """
15
+
16
+ When I format it as HTML
17
+ Then the output should be
18
+ """
19
+ <!DOCTYPE html>
20
+ <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
21
+ <head>
22
+ <meta http-equiv='Content-type' content='text/html; charset=UTF-8' />
23
+ <title>Song-Sheet</title>
24
+ <meta http-equiv='content-language' content='en' />
25
+ <style>
26
+ p {
27
+ line-height: 300%;
28
+ max-width: 30em;
29
+ }
30
+ .chord {
31
+ position: relative;
32
+ }
33
+ .chord span {
34
+ position: absolute;
35
+ bottom: 40%;
36
+ font-size: 66%;
37
+ font-weight: bold;
38
+ }
39
+ .chord .brackets {
40
+ display: none;
41
+ }
42
+ </style>
43
+ </head>
44
+ <body>
45
+ <header>
46
+ <h1>Song-Sheet</h1>
47
+ </header>
48
+ <section>
49
+ <p>
50
+ <span class='chord'><span><span class='brackets'>[</span>D<span class='brackets'>]</span></span>Do what I say, </span><span class='chord'><span><span class='brackets'>[</span>Em<span class='brackets'>]</span></span>or I will suffer</span><br />
51
+ </p>
52
+ </section>
53
+ </body>
54
+ </html>
55
+
56
+ """
57
+
58
+ Scenario: HTML Output of a simple Song with one Section and two lines
59
+ Given the parsetree
60
+ """
61
+ [
62
+ [
63
+ ['[D]', 'Do what I say, ', '[Em]', 'or I will suffer'],
64
+ ['Do what ', '[D]', 'I say, ', '[Em]', 'or I will suffer']
65
+ ]
66
+ ]
67
+ """
68
+
69
+ When I format it as HTML
70
+ Then the output should be
71
+ """
72
+ <!DOCTYPE html>
73
+ <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
74
+ <head>
75
+ <meta http-equiv='Content-type' content='text/html; charset=UTF-8' />
76
+ <title>Song-Sheet</title>
77
+ <meta http-equiv='content-language' content='en' />
78
+ <style>
79
+ p {
80
+ line-height: 300%;
81
+ max-width: 30em;
82
+ }
83
+ .chord {
84
+ position: relative;
85
+ }
86
+ .chord span {
87
+ position: absolute;
88
+ bottom: 40%;
89
+ font-size: 66%;
90
+ font-weight: bold;
91
+ }
92
+ .chord .brackets {
93
+ display: none;
94
+ }
95
+ </style>
96
+ </head>
97
+ <body>
98
+ <header>
99
+ <h1>Song-Sheet</h1>
100
+ </header>
101
+ <section>
102
+ <p>
103
+ <span class='chord'><span><span class='brackets'>[</span>D<span class='brackets'>]</span></span>Do what I say, </span><span class='chord'><span><span class='brackets'>[</span>Em<span class='brackets'>]</span></span>or I will suffer</span><br />
104
+ Do what <span class='chord'><span><span class='brackets'>[</span>D<span class='brackets'>]</span></span>I say, </span><span class='chord'><span><span class='brackets'>[</span>Em<span class='brackets'>]</span></span>or I will suffer</span><br />
105
+ </p>
106
+ </section>
107
+ </body>
108
+ </html>
109
+
110
+ """
111
+
112
+ Scenario: HTML Output of a simple Song with two Section and two lines
113
+ Given the parsetree
114
+ """
115
+ [
116
+ [
117
+ ['[D]', 'Do what I say, ', '[Em]', 'or I will suffer'],
118
+ ['Do what ', '[D]', 'I say, ', '[Em]', 'or I will suffer']
119
+ ],
120
+ [
121
+ ['[D]', 'Do what I say, ', '[Em]', 'or I will suffer'],
122
+ ['Do what ', '[D]', 'I say, ', '[Em]', 'or I will suffer']
123
+ ]
124
+ ]
125
+ """
126
+
127
+ When I format it as HTML
128
+ Then the output should be
129
+ """
130
+ <!DOCTYPE html>
131
+ <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
132
+ <head>
133
+ <meta http-equiv='Content-type' content='text/html; charset=UTF-8' />
134
+ <title>Song-Sheet</title>
135
+ <meta http-equiv='content-language' content='en' />
136
+ <style>
137
+ p {
138
+ line-height: 300%;
139
+ max-width: 30em;
140
+ }
141
+ .chord {
142
+ position: relative;
143
+ }
144
+ .chord span {
145
+ position: absolute;
146
+ bottom: 40%;
147
+ font-size: 66%;
148
+ font-weight: bold;
149
+ }
150
+ .chord .brackets {
151
+ display: none;
152
+ }
153
+ </style>
154
+ </head>
155
+ <body>
156
+ <header>
157
+ <h1>Song-Sheet</h1>
158
+ </header>
159
+ <section>
160
+ <p>
161
+ <span class='chord'><span><span class='brackets'>[</span>D<span class='brackets'>]</span></span>Do what I say, </span><span class='chord'><span><span class='brackets'>[</span>Em<span class='brackets'>]</span></span>or I will suffer</span><br />
162
+ Do what <span class='chord'><span><span class='brackets'>[</span>D<span class='brackets'>]</span></span>I say, </span><span class='chord'><span><span class='brackets'>[</span>Em<span class='brackets'>]</span></span>or I will suffer</span><br />
163
+ </p>
164
+ <p>
165
+ <span class='chord'><span><span class='brackets'>[</span>D<span class='brackets'>]</span></span>Do what I say, </span><span class='chord'><span><span class='brackets'>[</span>Em<span class='brackets'>]</span></span>or I will suffer</span><br />
166
+ Do what <span class='chord'><span><span class='brackets'>[</span>D<span class='brackets'>]</span></span>I say, </span><span class='chord'><span><span class='brackets'>[</span>Em<span class='brackets'>]</span></span>or I will suffer</span><br />
167
+ </p>
168
+ </section>
169
+ </body>
170
+ </html>
171
+
172
+ """
@@ -0,0 +1,63 @@
1
+ Feature: Parsing
2
+ In order to seperate backend and frontend
3
+ As a backend writer
4
+ I want to get a parsetree
5
+
6
+ Scenario: Simple Song
7
+ Given the song
8
+ """
9
+ [D]Do what I say, [Em]or I will suffer
10
+ """
11
+
12
+ When I parse it
13
+ Then the parsetree should be
14
+ """
15
+ [
16
+ [
17
+ ['[D]', 'Do what I say, ', '[Em]', 'or I will suffer']
18
+ ]
19
+ ]
20
+ """
21
+
22
+ Scenario: Simple Song Multiline
23
+ Given the song
24
+ """
25
+ [D]Do what I say, [Em]or I will suffer
26
+ [D]Do what I say, [Em]or I will suffer
27
+ """
28
+
29
+ When I parse it
30
+ Then the parsetree should be
31
+ """
32
+ [
33
+ [
34
+ ['[D]', 'Do what I say, ', '[Em]', 'or I will suffer'],
35
+ ['[D]', 'Do what I say, ', '[Em]', 'or I will suffer']
36
+ ]
37
+ ]
38
+ """
39
+
40
+ Scenario: Song with two sections
41
+ Given the song
42
+ """
43
+ [D]Do what I say, [Em]or I will suffer
44
+ [D]Do what I say, [Em]or I will suffer
45
+
46
+ [D]Do what I say, [Em]or I will suffer
47
+ [D]Do what I say, [Em]or I will suffer
48
+ """
49
+
50
+ When I parse it
51
+ Then the parsetree should be
52
+ """
53
+ [
54
+ [
55
+ ['[D]', 'Do what I say, ', '[Em]', 'or I will suffer'],
56
+ ['[D]', 'Do what I say, ', '[Em]', 'or I will suffer']
57
+ ],
58
+ [
59
+ ['[D]', 'Do what I say, ', '[Em]', 'or I will suffer'],
60
+ ['[D]', 'Do what I say, ', '[Em]', 'or I will suffer']
61
+ ]
62
+ ]
63
+ """
@@ -0,0 +1,53 @@
1
+ # vim: fileencoding=UTF-8 ft=ruby syn=ruby ts=2 sw=2 ai eol et si
2
+
3
+ # Copyright (c) 2009 Jörg W Mittag <mailto:JoergWMittag+Akkordarbeit@GoogleMail.Com>
4
+ # Copyright (c) 2009 Marc Rummel <mailto:Marc.Rummel+Akkordarbeit@GoogleMail.Com>
5
+ # This code is licensed under the terms of the MIT License (see LICENSE.rdoc)
6
+
7
+ require 'cucumber'
8
+ require 'spec/expectations'
9
+
10
+ stepsdir = File.expand_path(File.dirname __FILE__).gsub(/(.*step_definitions).*?/, '\1')
11
+ featuredir = File.expand_path File.join(stepsdir, '..')
12
+ libdir = File.expand_path File.join(featuredir, '..', 'lib')
13
+ $LOAD_PATH.unshift libdir unless $LOAD_PATH.include? libdir
14
+
15
+ require 'akkordarbeit'
16
+
17
+ Before do
18
+ @parser = Akkordarbeit::Parser.new
19
+ end
20
+
21
+ Given 'the song' do |song|
22
+ @song = song
23
+ end
24
+
25
+ When 'I parse it' do
26
+ @result = @parser.parse @song
27
+ end
28
+
29
+ Then 'the parsetree should be' do |parsetree|
30
+ @result.should == eval(parsetree)
31
+ end
32
+
33
+ Before do
34
+ @text_formatter = Akkordarbeit::TextFormatter.new
35
+ @html_formatter = Akkordarbeit::HtmlFormatter.new
36
+ end
37
+
38
+ Given 'the parsetree' do |parsetree|
39
+ @parsetree = eval(parsetree)
40
+ end
41
+
42
+ When 'I format it as (.*)' do |format|
43
+ @result = case format
44
+ when /html/i
45
+ @html_formatter.format @parsetree
46
+ when /text/i
47
+ @text_formatter.format @parsetree
48
+ end
49
+ end
50
+
51
+ Then 'the output should be' do |output|
52
+ @result.should == output
53
+ end
@@ -0,0 +1,76 @@
1
+ Feature: Text Output
2
+ In order to view the chord files
3
+ As a user
4
+ I want to get a text output
5
+
6
+ Scenario: Text Output of a simple Song
7
+ Given the parsetree
8
+ """
9
+ [
10
+ [
11
+ ['[D]', 'Do what I say, ', '[Em]', 'or I will suffer']
12
+ ]
13
+ ]
14
+ """
15
+
16
+ When I format it as text
17
+ Then the output should be
18
+ """
19
+ [D] [Em]
20
+ Do what I say, or I will suffer
21
+
22
+
23
+ """
24
+
25
+ Scenario: Text Output of a simple Song with one Section and two lines
26
+ Given the parsetree
27
+ """
28
+ [
29
+ [
30
+ ['[D]', 'Do what I say, ', '[Em]', 'or I will suffer'],
31
+ ['Do what ', '[D]', 'I say, ', '[Em]', 'or I will suffer']
32
+ ]
33
+ ]
34
+ """
35
+
36
+ When I format it as text
37
+ Then the output should be
38
+ """
39
+ [D] [Em]
40
+ Do what I say, or I will suffer
41
+ [D] [Em]
42
+ Do what I say, or I will suffer
43
+
44
+
45
+ """
46
+
47
+ Scenario: Text Output of a simple Song with two Section and two lines
48
+ Given the parsetree
49
+ """
50
+ [
51
+ [
52
+ ['[D]', 'Do what I say, ', '[Em]', 'or I will suffer'],
53
+ ['Do what ', '[D]', 'I say, ', '[Em]', 'or I will suffer']
54
+ ],
55
+ [
56
+ ['[D]', 'Do what I say, ', '[Em]', 'or I will suffer'],
57
+ ['Do what ', '[D]', 'I say, ', '[Em]', 'or I will suffer']
58
+ ]
59
+ ]
60
+ """
61
+
62
+ When I format it as text
63
+ Then the output should be
64
+ """
65
+ [D] [Em]
66
+ Do what I say, or I will suffer
67
+ [D] [Em]
68
+ Do what I say, or I will suffer
69
+
70
+ [D] [Em]
71
+ Do what I say, or I will suffer
72
+ [D] [Em]
73
+ Do what I say, or I will suffer
74
+
75
+
76
+ """
@@ -0,0 +1,12 @@
1
+ # vim: fileencoding=UTF-8 ft=ruby syn=ruby ts=2 sw=2 ai eol et si
2
+
3
+ # Copyright (c) 2009 Jörg W Mittag <mailto:JoergWMittag+Akkordarbeit@GoogleMail.Com>
4
+ # Copyright (c) 2009 Marc Rummel <mailto:Marc.Rummel+Akkordarbeit@GoogleMail.Com>
5
+ # This code is licensed under the terms of the MIT License (see LICENSE.rdoc)
6
+
7
+ libdir = File.expand_path(File.dirname __FILE__).gsub(/(.*lib).*?/, '\1')
8
+ $LOAD_PATH.unshift libdir unless $LOAD_PATH.include? libdir
9
+
10
+ require 'akkordarbeit/parser'
11
+ require 'akkordarbeit/text_formatter'
12
+ require 'akkordarbeit/html_formatter'
@@ -0,0 +1,74 @@
1
+ # vim: fileencoding=UTF-8 ft=ruby syn=ruby ts=2 sw=2 ai eol et si
2
+
3
+ # Copyright (c) 2009 J�rg W Mittag <mailto:JoergWMittag+Akkordarbeit@GoogleMail.Com>
4
+ # This code is licensed under the terms of the MIT License (see LICENSE.rdoc)
5
+
6
+ libdir = File.expand_path(File.dirname __FILE__).gsub(/(.*lib).*?/, '\1')
7
+ $LOAD_PATH.unshift libdir unless $LOAD_PATH.include? libdir
8
+
9
+ module Akkordarbeit
10
+ class HtmlFormatter
11
+ def format(parsetree)
12
+ output = <<-'HERE'
13
+ <!DOCTYPE html>
14
+ <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
15
+ <head>
16
+ <meta http-equiv='Content-type' content='text/html; charset=UTF-8' />
17
+ <title>Song-Sheet</title>
18
+ <meta http-equiv='content-language' content='en' />
19
+ <style>
20
+ p {
21
+ line-height: 300%;
22
+ max-width: 30em;
23
+ }
24
+ .chord {
25
+ position: relative;
26
+ }
27
+ .chord span {
28
+ position: absolute;
29
+ bottom: 40%;
30
+ font-size: 66%;
31
+ font-weight: bold;
32
+ }
33
+ .chord .brackets {
34
+ display: none;
35
+ }
36
+ </style>
37
+ </head>
38
+ <body>
39
+ <header>
40
+ <h1>Song-Sheet</h1>
41
+ </header>
42
+ <section>
43
+ HERE
44
+ parsetree.each do |section|
45
+ output << "\t"*3 << "<p>\n"
46
+ section.each do |line|
47
+ output << "\t"*4
48
+ last_chord = nil
49
+ line.each do |token|
50
+ regex = /(?:\[(.*?)\])/
51
+ if regex.match(token)
52
+ last_chord = $1
53
+ else
54
+ unless last_chord
55
+ output << token
56
+ else
57
+ token = '&nbsp;' if token =~ /^\s$/
58
+ output << "<span class='chord'><span><span class='brackets'>[</span>#{last_chord}<span class='brackets'>]</span></span>#{token}</span>"
59
+ last_chord = nil
60
+ end
61
+ end
62
+ end
63
+ output << "<br />\n"
64
+ end
65
+ output << "\t"*3 << "</p>\n"
66
+ end
67
+ return output << <<-'HERE'
68
+ </section>
69
+ </body>
70
+ </html>
71
+ HERE
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,26 @@
1
+ # vim: fileencoding=UTF-8 ft=ruby syn=ruby ts=2 sw=2 ai eol et si
2
+
3
+ # Copyright (c) 2009 Jörg W Mittag <mailto:JoergWMittag+Akkordarbeit@GoogleMail.Com>
4
+ # Copyright (c) 2009 Marc Rummel <mailto:Marc.Rummel+Akkordarbeit@GoogleMail.Com>
5
+ # This code is licensed under the terms of the MIT License (see LICENSE.rdoc)
6
+
7
+ libdir = File.expand_path(File.dirname __FILE__).gsub(/(.*lib).*?/, '\1')
8
+ $LOAD_PATH.unshift libdir unless $LOAD_PATH.include? libdir
9
+
10
+ module Akkordarbeit
11
+ class Parser
12
+ def parse(songstr)
13
+ chordpattern = /(\[.*?\])/
14
+ seperatorpattern = /\n\n+/
15
+ song = []
16
+ songstr.split(seperatorpattern).each do |sectionstr|
17
+ section = []
18
+ sectionstr.each_line do |line|
19
+ section << line.chomp.split(chordpattern).reject { |str| str.empty? }
20
+ end
21
+ song << section
22
+ end
23
+ return song
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,32 @@
1
+ # vim: fileencoding=UTF-8 ft=ruby syn=ruby ts=2 sw=2 ai eol et si
2
+
3
+ # Copyright (c) 2009 Marc Rummel <mailto:Marc.Rummel+Akkordarbeit@GoogleMail.Com>
4
+ # This code is licensed under the terms of the MIT License (see LICENSE.rdoc)
5
+
6
+ libdir = File.expand_path(File.dirname __FILE__).gsub(/(.*lib).*?/, '\1')
7
+ $LOAD_PATH.unshift libdir unless $LOAD_PATH.include? libdir
8
+
9
+ module Akkordarbeit
10
+ class TextFormatter
11
+ def format(parsetree)
12
+ output = ''
13
+ parsetree.each do |section|
14
+ section.each do |line|
15
+ chords, lyrics = '', ''
16
+ line.each do |token|
17
+ regex = /(\[.*?\])/
18
+ if regex.match(token)
19
+ chords << token
20
+ else
21
+ lyrics << token
22
+ chords << " " * (lyrics.length - chords.length)
23
+ end
24
+ end
25
+ output << chords.rstrip << "\n" << lyrics.rstrip << "\n"
26
+ end
27
+ output << "\n"
28
+ end
29
+ return output
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,14 @@
1
+ # vim: fileencoding=UTF-8 ft=ruby syn=ruby ts=2 sw=2 ai eol et si
2
+
3
+ # Copyright (c) 2009 Jörg W Mittag <mailto:JoergWMittag+Akkordarbeit@GoogleMail.Com>
4
+ # Copyright (c) 2009 Marc Rummel <mailto:Marc.Rummel+Akkordarbeit@GoogleMail.Com>
5
+ # This code is licensed under the terms of the MIT License (see LICENSE.rdoc)
6
+
7
+ require File.expand_path File.join(File.dirname(__FILE__), 'spec_helper')
8
+
9
+ require 'akkordarbeit'
10
+
11
+ describe Akkordarbeit do
12
+ it do
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ # vim: fileencoding=UTF-8 ft=ruby syn=ruby ts=2 sw=2 ai eol et si
2
+
3
+ # Copyright (c) 2009 Jörg W Mittag <mailto:JoergWMittag+Akkordarbeit@GoogleMail.Com>
4
+ # Copyright (c) 2009 Marc Rummel <mailto:Marc.Rummel+Akkordarbeit@GoogleMail.Com>
5
+ # This code is licensed under the terms of the MIT License (see LICENSE.rdoc)
6
+
7
+ specdir = File.expand_path(File.dirname __FILE__).gsub(/(.*spec).*?/, '\1')
8
+ $LOAD_PATH.unshift specdir unless $LOAD_PATH.include? specdir
9
+
10
+ require 'spec_helper'
11
+
12
+ Dir[File.join specdir, '**', '*_spec.rb'].each { |spec| require spec }
@@ -0,0 +1,13 @@
1
+ # vim: fileencoding=UTF-8 ft=ruby syn=ruby ts=2 sw=2 ai eol et si
2
+
3
+ # Copyright (c) 2009 Jörg W Mittag <mailto:JoergWMittag+Akkordarbeit@GoogleMail.Com>
4
+ # Copyright (c) 2009 Marc Rummel <mailto:Marc.Rummel+Akkordarbeit@GoogleMail.Com>
5
+ # This code is licensed under the terms of the MIT License (see LICENSE.rdoc)
6
+
7
+ require 'spec'
8
+
9
+ libdir = File.expand_path File.join(File.dirname(__FILE__), 'lib').gsub(/(.*)spec.*?/, '\1')
10
+ $LOAD_PATH.unshift libdir unless $LOAD_PATH.include? libdir
11
+
12
+ specdir = File.expand_path(File.dirname __FILE__).gsub(/(.*spec).*?/, '\1')
13
+ $LOAD_PATH.unshift specdir unless $LOAD_PATH.include? specdir
metadata ADDED
@@ -0,0 +1,126 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: JoergWMittag-akkordarbeit
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - "J\xC3\xB6rg W Mittag"
8
+ - Marc Rummel
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2009-03-21 00:00:00 -07:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: tagz
18
+ type: :runtime
19
+ version_requirement:
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ~>
23
+ - !ruby/object:Gem::Version
24
+ version: 5.0.1
25
+ version:
26
+ - !ruby/object:Gem::Dependency
27
+ name: cucumber
28
+ type: :development
29
+ version_requirement:
30
+ version_requirements: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ version: 0.2.2
35
+ version:
36
+ - !ruby/object:Gem::Dependency
37
+ name: jscruggs-metric_fu
38
+ type: :development
39
+ version_requirement:
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ version: 0.9.0
45
+ version:
46
+ - !ruby/object:Gem::Dependency
47
+ name: mislav-hanna
48
+ type: :development
49
+ version_requirement:
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 0.1.7
55
+ version:
56
+ - !ruby/object:Gem::Dependency
57
+ name: rspec
58
+ type: :development
59
+ version_requirement:
60
+ version_requirements: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ~>
63
+ - !ruby/object:Gem::Version
64
+ version: 1.2.2
65
+ version:
66
+ description: Akkordarbeit is a program for formatting simple leadsheets in a simplified ChordPro format to various other formats such as HTML or plaintext.
67
+ email: JoergWMittag+Akkordarbeit@GoogleMail.Com
68
+ executables:
69
+ - akkordarbeit
70
+ extensions: []
71
+
72
+ extra_rdoc_files:
73
+ - LICENSE.rdoc
74
+ - README.rdoc
75
+ files:
76
+ - features/html_formatter.feature
77
+ - features/parser.feature
78
+ - features/text_formatter.feature
79
+ - features/step_definitions/akkordarbeit_steps.rb
80
+ - spec/akkordarbeit_spec.rb
81
+ - spec/akkordarbeit_suite.rb
82
+ - spec/spec_helper.rb
83
+ - LICENSE.rdoc
84
+ - README.rdoc
85
+ - bin/akkordarbeit
86
+ - lib/akkordarbeit.rb
87
+ - lib/akkordarbeit/html_formatter.rb
88
+ - lib/akkordarbeit/parser.rb
89
+ - lib/akkordarbeit/text_formatter.rb
90
+ has_rdoc: true
91
+ homepage: https://JoergWMittag.GitHub.Com/akkordarbeit/
92
+ post_install_message:
93
+ rdoc_options:
94
+ - --all
95
+ - --charset=UTF-8
96
+ - --line-numbers
97
+ - --webcvs=https://GitHub.Com/JoergWMittag/Akkordarbeit/blob/master/%s
98
+ require_paths:
99
+ - lib
100
+ required_ruby_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ~>
103
+ - !ruby/object:Gem::Version
104
+ version: 1.8.6
105
+ version:
106
+ required_rubygems_version: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: "0"
111
+ version:
112
+ requirements: []
113
+
114
+ rubyforge_project: Akkordarbeit
115
+ rubygems_version: 1.2.0
116
+ signing_key:
117
+ specification_version: 2
118
+ summary: Formats ChordPro leadsheets as HTML or plaintext
119
+ test_files:
120
+ - features/html_formatter.feature
121
+ - features/parser.feature
122
+ - features/text_formatter.feature
123
+ - features/step_definitions/akkordarbeit_steps.rb
124
+ - spec/akkordarbeit_spec.rb
125
+ - spec/akkordarbeit_suite.rb
126
+ - spec/spec_helper.rb