module Fasten::Support::Yaml
Public Instance Methods
load_yaml(path)
click to toggle source
# File lib/fasten/support/yaml.rb, line 6 def load_yaml(path) items = YAML.safe_load(File.read(path)).each do |name, params| case params when String params = { after: params } when Hash transform_params(params) else params = {} end task name, params end log_info "Loaded #{items.count} tasks from #{path}" end
save_yaml(path)
click to toggle source
# File lib/fasten/support/yaml.rb, line 23 def save_yaml(path) keys = %i[after shell] items = tasks.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
Protected Instance Methods
transform_params(params)
click to toggle source
# File lib/fasten/support/yaml.rb, line 41 def transform_params(params) keys = params.keys keys.each do |key| val = params.delete key if val.is_a?(String) && (match = %r{^/(.+)/$}.match(val)) val = Regexp.new(match[1]) end params[key.to_sym] = val end end