Sha256: 56d988427ad0be7892b82385c8327b0c5f2c3dd4d6b2c4397ad81725bd3118e4
Contents?: true
Size: 927 Bytes
Versions: 1
Compression:
Stored size: 927 Bytes
Contents
# frozen_string_literal: true require 'hanami/interactor' require 'json' require 'fileutils' require 'pathname' module Umwelt::Abstract::File class Store < Umwelt::Abstract::Interactor expose :written_paths def initialize(path: '.umwelt') @path = path @written_paths = {} end private def write(path, struct) path.dirname.mkpath path.write serialize destruct struct end def serialize(struct) JSON.pretty_generate struct end def destruct(obj) obj.is_a?(Struct) ? destruct_members(obj.to_h) : obj end 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 def umwelt_root_path Pathname.pwd / @path end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
umwelt-0.2 | lib/umwelt/abstract/file/store.rb |