问题描述
我已经编写并优化了这样的代码
def issues_json_for_v2(skip_avatar = false)
@result_json ||= { results: [] }
return if @result_set['issues'].empty?
@result_set['total_entries'] = @result_set['meta']['total']
fr_issues = @result_set['issues']
user_hash = fr_results_hash(@result_set['users'])
project_data = fr_results_hash(@result_set['projects'])
if @suggest
add_suggest_results_fr_issues(fr_issues,project_data)
else
fr_issues.each do |issue|
p_data = project_data[issue['project_id']] if issue
if issue && issue['owner_id']
issue_json = append_fr_user_details_to_issue(safe_send(:fr_issue_json,issue,p_data),user_hash)
else
issue_json = safe_send(:fr_issue_json,p_data)
end
@result_json[:results] << issue_json
end
end
return @result_json[:results] if @size.nil?
add_fr_prj_meta_data(fr_issues)
@result_json[:results]
end
我还是得到
issue_json_for_v2的分配分支条件大小太大。
在保持可读性的同时,我可以做些什么优化。
这是我遇到此问题的另一种方法
def project_json(project,id)
human_display_id = project['key']
title = sanitize_fr_data(project['name'])
description = project['description'].blank? ? '' : project['description']
description = sanitize_fr_data(description)
prg = project['progress']
percent_completion = (prg['done'] == 0) ? 0 : (prg['done'] * 100) / (prg['todo'] + prg['in_progress'] + prg['done'])
current_time_zone = ActiveSupport::TimeZone::MAPPING[current_user.time_zone]
start_date = project['start_date'].nil? ? '--' : project['start_date'].in_time_zone(current_time_zone).strftime(date_time_format)
end_date = project['end_date'].nil? ? '--' : project['end_date'].in_time_zone(current_time_zone).strftime(date_time_format)
return { result_type: 'project',content: %{#{title} (#{human_display_id})},path: fr_project_path(project['key']) } if @suggest
{
id: id,title: title,project_display_id: human_display_id,description: truncate(description,length: 250),owner: project['owner_id'],start_date: start_date,end_date: end_date,progress: {todo: project['progress']['todo'],in_progress: project['progress']['in_progress'],done: project['progress']['done']},percent_completion: percent_completion,}
end
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)