Factored out lyric parsing into a separate library
[lyrix.git] / lib / lyric_parser.rb
bloba50e5cd3642b24e7f19be28d9809415c527eabc8
1 module Lyrix
2   class LyricParser
3     DEFAULT_OPTIONS = {}
4   
5     def initialize(lyrics, options = {})
6       @options = DEFAULT_OPTIONS.merge(options)
7       @lyrics = lyrics
8     end
9     
10     def parse
11       @parsed_lyrics ||= parse!
12       @parsed_lyrics
13     end
14     
15     def parse!
16       parsed = {}
17       
18       parsed[:slides] = @lyrics.strip.gsub("\r\n", "\n").split(/\n[ \t]*\n/)
19       parsed[:slides].collect! { |s| s.strip }
20       parsed[:slides].reject! { |s| s.empty? }
21       
22       parsed
23     end
24     
25     def to_slides
26       parse[:slides]
27     end
28   end
29 end