Skip to content

Commit

Permalink
Refactor conditional logic into Twitter::API::Lists#merge_owner! method
Browse files Browse the repository at this point in the history
  • Loading branch information
sferik committed Jun 3, 2013
1 parent 5f7482e commit 54bdde1
Showing 1 changed file with 11 additions and 8 deletions.
19 changes: 11 additions & 8 deletions lib/twitter/api/lists.rb
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ def lists(*args)
def list_timeline(*args)
arguments = Twitter::API::Arguments.new(args)
merge_list!(arguments.options, arguments.pop)
merge_owner!(arguments.options, arguments.pop || screen_name) unless arguments.options[:owner_id] || arguments.options[:owner_screen_name]
merge_owner!(arguments.options, arguments.pop)
objects_from_response(Twitter::Tweet, :get, "/1.1/lists/statuses.json", arguments.options)
end

Expand Down Expand Up @@ -541,22 +541,22 @@ def lists_owned(*args)
def list_from_response(request_method, path, args)
arguments = Twitter::API::Arguments.new(args)
merge_list!(arguments.options, arguments.pop)
merge_owner!(arguments.options, arguments.pop || screen_name) unless arguments.options[:owner_id] || arguments.options[:owner_screen_name]
merge_owner!(arguments.options, arguments.pop)
object_from_response(Twitter::List, request_method, path, arguments.options)
end

def cursor_from_response_with_list(request_method, path, args, calling_method)
arguments = Twitter::API::Arguments.new(args)
merge_list!(arguments.options, arguments.pop)
merge_owner!(arguments.options, arguments.pop || screen_name) unless arguments.options[:owner_id] || arguments.options[:owner_screen_name]
merge_owner!(arguments.options, arguments.pop)
cursor_from_response(:users, Twitter::User, request_method, path, arguments.options, calling_method)
end

def list_user?(request_method, path, args)
arguments = Twitter::API::Arguments.new(args)
merge_user!(arguments.options, arguments.pop)
merge_list!(arguments.options, arguments.pop)
merge_owner!(arguments.options, arguments.pop || screen_name) unless arguments.options[:owner_id] || arguments.options[:owner_screen_name]
merge_owner!(arguments.options, arguments.pop)
send(request_method.to_sym, path, arguments.options)
true
rescue Twitter::Error::NotFound, Twitter::Error::Forbidden
Expand All @@ -567,15 +567,15 @@ def list_from_response_with_user(request_method, path, args)
arguments = Twitter::API::Arguments.new(args)
merge_user!(arguments.options, arguments.pop)
merge_list!(arguments.options, arguments.pop)
merge_owner!(arguments.options, arguments.pop || screen_name) unless arguments.options[:owner_id] || arguments.options[:owner_screen_name]
merge_owner!(arguments.options, arguments.pop)
object_from_response(Twitter::List, request_method, path, arguments.options)
end

def list_from_response_with_users(request_method, path, args)
arguments = Twitter::API::Arguments.new(args)
members = arguments.pop
merge_list!(arguments.options, arguments.pop)
merge_owner!(arguments.options, arguments.pop || screen_name) unless arguments.options[:owner_id] || arguments.options[:owner_screen_name]
merge_owner!(arguments.options, arguments.pop)
members.flatten.each_slice(MAX_USERS_PER_REQUEST).threaded_map do |users|
object_from_response(Twitter::List, request_method, path, merge_users(arguments.options, users))
end.last
Expand Down Expand Up @@ -605,8 +605,11 @@ def merge_list!(hash, list)
# @param user[Integer, String, Twitter::User] A Twitter user ID, screen_name, or object.
# @return [Hash]
def merge_owner!(hash, user)
merge_user!(hash, user, "owner")
hash[:owner_id] = hash.delete(:owner_user_id) unless hash[:owner_user_id].nil?
unless hash[:owner_id] || hash[:owner_screen_name]
user ||= screen_name
merge_user!(hash, user, "owner")
hash[:owner_id] = hash.delete(:owner_user_id) unless hash[:owner_user_id].nil?
end
hash
end

Expand Down

0 comments on commit 54bdde1

Please sign in to comment.