module Figly::Settings::SettingsHash

Public Instance Methods

[](key) click to toggle source
# File lib/figly/settings.rb, line 10
def [](key)
  if self.key?(key.to_s)
    self.fetch(key.to_s)
  elsif self.key?(key.to_sym)
    self.fetch(key.to_sym)
  end
end
method_missing(m, *args, &blk) click to toggle source
# File lib/figly/settings.rb, line 4
def method_missing(m, *args, &blk)
  value = self[m]
  return value.extend(SettingsHash) if value.instance_of? Hash
  value
end
symbolize_keys() click to toggle source
# File lib/figly/settings.rb, line 18
def symbolize_keys
  _symbolize_keys(self)
end
symbolize_keys!() click to toggle source
# File lib/figly/settings.rb, line 22
def symbolize_keys!
  _symbolize_keys(self, in_place: true)
end

Private Instance Methods

_symbolize_keys(hash, in_place: false) click to toggle source
# File lib/figly/settings.rb, line 27
def _symbolize_keys(hash, in_place: false)
  h = in_place ? hash : hash.dup
  h.tap do |h|
    h.keys.each do |key|
      if key.is_a?(String)
        val = h.delete(key)
        h[key.to_sym] = if val.is_a?(Hash)
          _symbolize_keys(val, in_place: in_place)
        else
          val
        end
      end
    end
  end
end