38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/coinsync/config.rb', line 38
def filtered_sources(selected, except = nil)
included = if selected.nil? || selected.empty?
sources.values
else
selected = [selected] unless selected.is_a?(Array)
selected.map do |key|
sources[key] or raise "Source not found in the config file: '#{key}'"
end
end
if except
except = [except] unless except.is_a?(Array)
included -= except.map { |key| sources[key] }
end
Hash[included.map { |source| [source.key, source] }]
end
|