lib/twitter/base.rb in twitter-5.12.0 vs lib/twitter/base.rb in twitter-5.13.0
- old
+ new
@@ -83,11 +83,11 @@
# @param key1 [Symbol]
# @param klass [Symbol]
# @param key2 [Symbol]
def define_attribute_method(key1, klass = nil, key2 = nil)
define_method(key1) do ||
- if @attrs[key1].nil? || @attrs[key1].respond_to?(:empty?) && @attrs[key1].empty?
+ if attr_falsey_or_empty?(key1)
NullObject.new
else
if klass.nil?
@attrs[key1]
else
@@ -112,11 +112,11 @@
#
# @param key1 [Symbol]
# @param key2 [Symbol]
def define_predicate_method(key1, key2 = key1)
define_method(:"#{key1}?") do ||
- !@attrs[key2].nil? && @attrs[key2] != false && !(@attrs[key2].respond_to?(:empty?) && @attrs[key2].empty?)
+ !attr_falsey_or_empty?(key2)
end
memoize(:"#{key1}?")
end
end
@@ -137,9 +137,13 @@
rescue NoMethodError
nil
end
private
+
+ def attr_falsey_or_empty?(key)
+ @attrs[key].nil? || @attrs[key] == false || @attrs[key].respond_to?(:empty?) && @attrs[key].empty?
+ end
def attrs_for_object(key1, key2 = nil)
if key2.nil?
@attrs[key1]
else