class Gimlet::DataStore
Public Class Methods
new(source_path)
click to toggle source
# File lib/gimlet/data_store.rb, line 12 def initialize(source_path) @source_path = Pathname(source_path) @local_data = ::Gimlet::Util.recursively_enhance({}) load_all! end
Public Instance Methods
load_all!()
click to toggle source
# File lib/gimlet/data_store.rb, line 18 def load_all! if @source_path.directory? load_from_directory! elsif @source_path.file? load_from_file! else raise SourceNotFound, 'No such file or directory - %s' % @source_path end end
load_from_directory!()
click to toggle source
# File lib/gimlet/data_store.rb, line 28 def load_from_directory! Pathname.glob(@source_path + '**/*.{yaml,yml}').each do |path| extension = path.extname basename = path.basename(extension) parts = path.relative_path_from(@source_path).split.map(&:to_s)[0..-1] parts.delete('.') parts.pop current = @local_data parts.each do |part| current[part] ||= ::Gimlet::Util.recursively_enhance({}) current = current[part] end current[basename.to_s] = load_from_file(path) end end
load_from_file(path)
click to toggle source
# File lib/gimlet/data_store.rb, line 51 def load_from_file(path) ::Gimlet::Util.recursively_enhance(YAML.load_file(path)) end
load_from_file!()
click to toggle source
# File lib/gimlet/data_store.rb, line 47 def load_from_file! @local_data = load_from_file(@source_path) end