lib/adyen/hash_with_accessors.rb in adyen-ruby-api-library-7.0.1 vs lib/adyen/hash_with_accessors.rb in adyen-ruby-api-library-7.0.2
- old
+ new
@@ -1,5 +1,9 @@
+# rubocop:disable Metrics/AbcSize
+# rubocop:disable Metrics/MethodLength
+# rubocop:disable Metrics/PerceivedComplexity
+
# This utility method inherits from Hash, but allows keys to be read
# and updated with dot notation. Usage is entirely optional (i.e., hash values
# can still be accessed via symbol and string keys).
#
# Based on: https://gist.github.com/winfred/2185384#file-ruby-dot-hash-access-rb
@@ -7,32 +11,33 @@
class HashWithAccessors < Hash
def method_missing(method, *args)
string_key = method.to_s.sub(/=\z/, '')
sym_key = string_key.to_sym
- key = if has_key?(string_key)
- string_key
- elsif has_key?(sym_key)
- sym_key
- end
+ key = if key?(string_key)
+ string_key
+ elsif key?(sym_key)
+ sym_key
+ end
return super unless key
assignment = sym_key != method
if assignment
raise ArgumentError, "wrong number of arguments (given #{args.size}, expected 1)" unless args.size == 1
self[key] = args.first
else
- raise ArgumentError, "wrong number of arguments (given #{args.size}, expected 0)" unless args.size == 0
+ raise ArgumentError, "wrong number of arguments (given #{args.size}, expected 0)" unless args.empty?
self[key]
end
end
def respond_to_missing?(method, include_private = false)
string_key = method.to_s.sub(/=\z/, '')
- has_key?(string_key) || has_key?(string_key.to_sym) || super
+ key?(string_key) || key?(string_key.to_sym) || super
end
end
end
+# rubocop:enable all