Class: Lyricli::SourceManager
- Inherits:
-
Object
- Object
- Lyricli::SourceManager
show all
- Includes:
- Util
- Defined in:
- lib/lyricli/source_manager.rb
Instance Method Summary
(collapse)
Methods included from Util
#camelize, #parse_class, #sanitize_param
Constructor Details
A new instance of SourceManager
6
7
8
9
10
11
12
13
14
15
16
17
|
# File 'lib/lyricli/source_manager.rb', line 6
def initialize
@enabled_sources = []
@config = Configuration.instance
@config["enabled_sources"].each do |source|
if klass = parse_class(camelize(source))
current_source = klass.new
@enabled_sources << current_source
else
raise StartSourceException
end
end
end
|
Instance Method Details
- (Object) available_sources(format = false)
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
# File 'lib/lyricli/source_manager.rb', line 81
def available_sources(format = false)
path_root = File.expand_path(File.dirname(__FILE__))
sources = Dir[path_root+"/sources/*.rb"].map{ |s|
name = s.split("/").last.gsub(/\.rb/, "")
name
}
sources.delete("arguments")
if format
format_sources(sources)
else
sources
end
end
|
- (Object) current_track
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
# File 'lib/lyricli/source_manager.rb', line 60
def current_track
track = nil
lock = false
@enabled_sources.each do |source|
begin
current_track = source.current_track
unless current_track[:artist].nil? || current_track[:artist].empty? || current_track[:song].nil? || current_track[:song].empty?
track = current_track unless lock
lock = true if source.class.name == "arguments"
end
rescue
raise SourceConfigurationException
end
end
track
end
|
- (Object) disable(source_name)
34
35
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/lyricli/source_manager.rb', line 34
def disable(source_name)
if available_sources.include?(source_name)
if klass = parse_class(camelize(source_name))
@config["enabled_sources"].delete(klass.name)
@config.save_config
else
raise DisableSourceException
end
else
raise UnknownSource
end
end
|
- (Object) enable(source_name)
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/lyricli/source_manager.rb', line 19
def enable(source_name)
if available_sources.include?(source_name)
if klass = parse_class(camelize(source_name))
klass.enable
@config["enabled_sources"] << klass.name
@config["enabled_sources"].uniq!
@config.save_config
else
raise EnableSourceException
end
else
raise UnknownSource
end
end
|
99
100
101
102
103
104
|
# File 'lib/lyricli/source_manager.rb', line 99
def format_sources(sources)
sources.map{ |s|
s << "*" if @config["enabled_sources"].include?(s)
s
}
end
|
- (Object) reset(source_name)
47
48
49
50
51
52
53
54
55
56
57
58
|
# File 'lib/lyricli/source_manager.rb', line 47
def reset(source_name)
if available_sources.include?(source_name)
if klass = parse_class(camelize(source_name))
klass.reset
disable(source_name)
else
raise ResetSourceException
end
else
raise UnknownSource
end
end
|