Skip to content

Commit

Permalink
Refactor: Avoid variable reuse and introduce a method to handle one o…
Browse files Browse the repository at this point in the history
…f the edge cases
  • Loading branch information
CloCkWeRX committed Jan 12, 2017
1 parent 5a91bb1 commit 7831450
Showing 1 changed file with 17 additions and 13 deletions.
30 changes: 17 additions & 13 deletions app/controllers/home_controller.rb
Expand Up @@ -126,23 +126,27 @@ def activity_event
# needs refactoring to use user id instead. Permuations based on name or email
# yield incorrect results.
def activity_user
user = current_user.pref[:activity_user]
if user && user != "all_users"
user = if user =~ /@/ # email
User.where(email: user).first
else # first_name middle_name last_name any_name
name_query = if user.include?(" ")
user.name_permutations.map do |first, last|
User.where(first_name: first, last_name: last)
end.map(&:to_a).flatten.first
else
[User.where(first_name: user), User.where(last_name: user)].map(&:to_a).flatten.first
end
end
return nil if current_user.pref[:activity_user] == "all_users"
return nil unless current_user.pref[:activity_user]

if current_user.pref[:activity_user] =~ /@/ # email
user = User.where(email: current_user.pref[:activity_user]).first
else # first_name middle_name last_name any_name
user = name_query(current_user.pref[:activity_user])
end
user.is_a?(User) ? user.id : nil
end

def name_query(user)
if user.include?(" ")
user.name_permutations.map do |first, last|
User.where(first_name: first, last_name: last)
end.map(&:to_a).flatten.first
else
[User.where(first_name: user), User.where(last_name: user)].map(&:to_a).flatten.first
end
end

#----------------------------------------------------------------------------
def activity_duration
duration = current_user.pref[:activity_duration]
Expand Down

0 comments on commit 7831450

Please sign in to comment.