Class: AppCfg::Source
- Inherits:
-
Object
show all
- Defined in:
- lib/appcfg/source.rb
Constant Summary
collapse
- @@sources =
[]
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(options = {}) ⇒ Source
Returns a new instance of Source.
9
10
11
|
# File 'lib/appcfg/source.rb', line 9
def initialize(options={})
@hash = options
end
|
Class Method Details
.add(source_object, options = {}) ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/appcfg/source.rb', line 21
def self.add(source_object, options={})
if source_object.is_a?(String) && source_object[-4..-1] == '.yml'
raise "File #{source_object} could not be located" unless File.exist? source_object
add_source(YamlSource.new(options.merge(:file => source_object)))
elsif source_object.is_a?(String) && source_object[-11..-1] == '.properties'
raise "File #{source_object} could not be located" unless File.exist? source_object
add_source(PropertiesSource.new(options.merge(:file => source_object)))
elsif source_object.is_a?(Class) && source_object.respond_to?(:all)
add_source(ModelSource.new(options.merge(:class => source_object)))
elsif source_object.is_a?(Hash)
add_source(Source.new(source_object))
else
raise 'Could not match source object to any known types'
end
end
|
.clear ⇒ Object
41
42
43
44
|
# File 'lib/appcfg/source.rb', line 41
def self.clear
@@sources = []
reload_sources!
end
|
.list ⇒ Object
46
47
48
|
# File 'lib/appcfg/source.rb', line 46
def self.list
@@sources
end
|
.reload_sources! ⇒ Object
50
51
52
53
54
55
56
57
58
59
|
# File 'lib/appcfg/source.rb', line 50
def self.reload_sources!
cache = {}
@@sources.each do |source|
source.reload_data!
cache = recursive_merge(cache, source.to_hash)
end
AppCfg.set_cache add_key_methods cache
end
|
Instance Method Details
#reload_data! ⇒ Object
17
18
19
|
# File 'lib/appcfg/source.rb', line 17
def reload_data!
end
|
#to_hash ⇒ Object
13
14
15
|
# File 'lib/appcfg/source.rb', line 13
def to_hash
@hash
end
|