Sha256: 9aeb30a8bc0ad3ed800e690aa21515bb7a831e367f298b929df1526fdd815706
Contents?: true
Size: 1.03 KB
Versions: 1
Compression:
Stored size: 1.03 KB
Contents
module Fasten module Yaml def transform_params(params) params.keys.each do |k| val = params[k] if val.is_a?(String) && (match = %r{^/(.+)/$}.match(val)) val = Regexp.new(match[1]) end params[k.to_sym] = val params.delete(k) end end def load_yaml(path) items = YAML.safe_load(File.read(path)).each do |name, params| if params.is_a? String params = { after: params } elsif params.is_a? Hash transform_params(params) else params = {} end add Fasten::Task.new({ name: name }.merge(params)) end log_info "Loaded #{items.count} tasks from #{path}" end def save_yaml(path) keys = %i[after shell] items = task_list.map do |task| data = task.to_h.select do |key, _val| keys.include? key end [task.name, data] end.to_h File.write path, items.to_yaml log_info "Loaded #{items.count} tasks into #{path}" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fasten-0.5.4 | lib/fasten/yaml.rb |