module Hashie::Extensions::KeyConflictWarning

Public Instance Methods

disable_warnings(*method_keys) click to toggle source

Disable the logging of warnings based on keys conflicting keys/methods

@api semipublic @return [void]

# File lib/hashie/extensions/key_conflict_warning.rb, line 17
def disable_warnings(*method_keys)
  raise CannotDisableMashWarnings if self == Hashie::Mash
  if method_keys.any?
    disabled_warnings.concat(method_keys).tap(&:flatten!).uniq!
  else
    disabled_warnings.clear
  end

  @disable_warnings = true
end
disable_warnings?(method_key = nil) click to toggle source

Checks whether this class disables warnings for conflicting keys/methods

@api semipublic @return [Boolean]

# File lib/hashie/extensions/key_conflict_warning.rb, line 32
def disable_warnings?(method_key = nil)
  return disabled_warnings.include?(method_key) if disabled_warnings.any? && method_key
  @disable_warnings ||= false
end
disabled_warnings() click to toggle source

Returns an array of methods that this class disables warnings for.

@api semipublic @return [Boolean]

# File lib/hashie/extensions/key_conflict_warning.rb, line 41
def disabled_warnings
  @_disabled_warnings ||= []
end
inherited(subclass) click to toggle source

Inheritance hook that sets class configuration when inherited.

@api semipublic @return [void]

Calls superclass method
# File lib/hashie/extensions/key_conflict_warning.rb, line 49
def inherited(subclass)
  super
  subclass.disable_warnings(disabled_warnings) if disable_warnings?
end