Friday, 23 August 2013

Refactor Method Complexity in RAILS

Refactor Method Complexity in RAILS

Hi I synchronized my app with Code Climate for code review.
lib/models/user/synchrony/basecamp_inc.rb
def todo_list(todos,basecamp_account,proj_id)
todos.map{|todo|
task = basecamp_tasklist(proj_id,todo['id'],basecamp_account)
task_list(task['todos']['remaining'],task['name'],'remain') if
task['todos']['remaining'].present?
task_list(task['todos']['completed'],task['name'],'complete') if
task['todos']['completed'].present?
}
end
def task_list(tasks,todo_list,status)
tasks.map{|task|
task_created(task,todo_list)
task['assignee'].present? &&
user_owner?(task['assignee']['name']) ? save_task_activity('was
assigned to a',task,todo_list,task['updated_at'],'assign') :
[tasks,todo_list,status]
status == 'complete' && user_owner?(task['completer']['name'])
&& current_date?(task['completed_at']) ?
save_task_activity('finished',task,todo_list,task['completed_at'],'finished')
: [tasks,todo_list,status]
}
end
The codes above were detected by code climate as having complex methods. I
don't get why code climate thought of it as complex. So then, the rank of
that code is still C and I want to refactor it. Any workarounds how to
improve this?

No comments:

Post a Comment