class Ruboty::Gominohi::YAML
Constants
- YAML_DIRS
- YAML_FILE
Attributes
data[R]
Public Class Methods
new()
click to toggle source
# File lib/ruboty/gominohi/yaml.rb, line 15 def initialize YAML_DIRS.each do |dir| filename = File.join(dir, YAML_FILE) if File.exists?(filename) @data = deep_symbolize_keys(::YAML.load(File.read(filename))) break end end raise "#{YAML_FILE} is not found" if @data.nil? yaml_version = parse_and_truncate_patch_version(@data[:version]) gominohi_version = parse_and_truncate_patch_version(::Ruboty::Gominohi::VERSION) raise 'version of `.gominohi.yml` is invalid' unless yaml_version == gominohi_version end
Private Instance Methods
deep_symbolize_keys(obj)
click to toggle source
# File lib/ruboty/gominohi/yaml.rb, line 41 def deep_symbolize_keys(obj) obj.to_hash.keys.each do |key| case (v = obj.delete(key)) when Hash v = symbolize_keys(v) when Array v = v.map{ |x| (symbolize_keys(x) rescue x) } end obj[(key.to_sym rescue key) || key] = v end obj end
parse_and_truncate_patch_version(version_string)
click to toggle source
# File lib/ruboty/gominohi/yaml.rb, line 33 def parse_and_truncate_patch_version(version_string) version_ints = version_string.split('.').map(&:to_i).slice(0..1) end
symbolize_keys(hash)
click to toggle source
# File lib/ruboty/gominohi/yaml.rb, line 37 def symbolize_keys(hash) hash.each_with_object({}) { |(k, v), result| result[k.to_sym] = v } end