diff --git a/lib/twitter/status.rb b/lib/twitter/status.rb index 11401ddf6..f41c27722 100644 --- a/lib/twitter/status.rb +++ b/lib/twitter/status.rb @@ -24,7 +24,7 @@ def ==(other) def all_urls @all_urls ||= begin - all_urls = [ urls, expanded_urls ].compact.flatten.uniq + all_urls = [ urls, expanded_urls ].flatten.compact.uniq all_urls.length > 0 ? all_urls : nil end end diff --git a/spec/twitter/status_spec.rb b/spec/twitter/status_spec.rb index 3db0703c9..acb3139dd 100644 --- a/spec/twitter/status_spec.rb +++ b/spec/twitter/status_spec.rb @@ -33,6 +33,13 @@ all_urls = Twitter::Status.new.all_urls all_urls.should be_nil end + it "should not include nil" do + urls = [{'url' => 'http://t.co/example', 'expanded_url' => nil}] + status_attributes = { 'text' => "This tweet contains a http://t.co/example.", 'entities' => {'urls' => urls} } + all_urls = Twitter::Status.new(status_attributes).all_urls + all_urls.should be_an Array + all_urls.should == ["http://t.co/example"] + end end describe "#expanded_urls" do