lib/twitter/base.rb in twitter-5.10.0 vs lib/twitter/base.rb in twitter-5.11.0
- old
+ new
@@ -82,15 +82,15 @@
# @param key1 [Symbol]
# @param klass [Symbol]
# @param key2 [Symbol]
def define_attribute_method(key1, klass = nil, key2 = nil)
define_method(key1) do ||
- if klass.nil?
- @attrs[key1]
+ if @attrs[key1].nil? || @attrs[key1].respond_to?(:empty?) && @attrs[key1].empty?
+ NullObject.new
else
- if @attrs[key1].nil?
- NullObject.new
+ if klass.nil?
+ @attrs[key1]
else
attrs = attrs_for_object(key1, key2)
Twitter.const_get(klass).new(attrs)
end
end
@@ -113,10 +113,10 @@
#
# @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].nil? && @attrs[key2] != false && !(@attrs[key2].respond_to?(:empty?) && @attrs[key2].empty?)
end
memoize(:"#{key1}?")
end
end