class Object
Public Instance Methods
aargh(message, exit_code = nil)
click to toggle source
# File bin/edicta, line 12 def aargh(message, exit_code = nil) $stderr.puts message exit exit_code unless exit_code.nil? end
check(lines, look_for, edicts, counter, output)
click to toggle source
# File bin/edicta, line 109 def check(lines, look_for, edicts, counter, output) return if dict(lines, look_for, edicts, counter) return unless env(:text) lines.each { |line| output.puts(line) } end
default_env(var, value)
click to toggle source
# File bin/edicta, line 29 def default_env(var, value) v = env(var) env(var, value) if v.nil? end
dict(lines, look_for, edicts, counter)
click to toggle source
# File bin/edicta, line 86 def dict(lines, look_for, edicts, counter) return false if lines.empty? begin aargh("Decoding #{counter - lines.length}-#{counter - 1}") if env(:verbose) contents = YAML.safe_load(lines.join) rescue StandardError aargh('Failed.') if env(:verbose) && !env(:text) return false end return false unless contents.is_a? Hash return true if env(:text) # Result will go unused. contents.each_pair do |k, v| next unless look_for[k] aargh("Found #{k}") if env(:verbose) aargh("Duplicate key: #{k}", 2) if env(:duplicate) && edicts.key?(k) edicts[k] = v if look_for.default && !look_for.key?(k) look_for[k] = edicts.size # Retain order in which encountered. end end true end
env(var, value = nil)
click to toggle source
# File bin/edicta, line 17 def env(var, value = nil) k = var.to_s.upcase ENV[k] = { false => '0', true => '1' }.fetch(value, value) unless value.nil? v = ENV.fetch(k, nil) case v when '0' then false when '1' then true else v end end
file(val, default, mode)
click to toggle source
# File bin/edicta, line 72 def file(val, default, mode) val.empty? ? default : File.open(val, mode) rescue StandardError aargh "Failed to open for #{mode}: #{val}", 1 end