class Umwelt::Abstract::File::Store
Public Class Methods
new(path: '.umwelt')
click to toggle source
# File lib/umwelt/abstract/file/store.rb, line 12 def initialize(path: '.umwelt') @path = path @written_paths = {} end
Private Instance Methods
destruct(obj)
click to toggle source
# File lib/umwelt/abstract/file/store.rb, line 29 def destruct(obj) obj.is_a?(Struct) ? destruct_members(obj.to_h) : obj end
destruct_members(hash)
click to toggle source
# File lib/umwelt/abstract/file/store.rb, line 33 def destruct_members(hash) hash.transform_values do |value| if value.is_a?(Array) value.map { |member| destruct(member) } elsif value.is_a? Time value.to_s else destruct(value) end end end
serialize(struct)
click to toggle source
# File lib/umwelt/abstract/file/store.rb, line 25 def serialize(struct) JSON.pretty_generate struct end
umwelt_root_path()
click to toggle source
# File lib/umwelt/abstract/file/store.rb, line 45 def umwelt_root_path Pathname.pwd / @path end
write(path, struct)
click to toggle source
# File lib/umwelt/abstract/file/store.rb, line 19 def write(path, struct) path.dirname.mkpath path.write serialize destruct struct end