From 239b274855965ff400a879e5d9086c73c54584ab Mon Sep 17 00:00:00 2001 From: Maxim Rydkin Date: Fri, 20 Oct 2017 16:21:44 +0000 Subject: [PATCH] Decrease Perceived Complexity threshold to 14 --- .rubocop.yml | 2 +- app/helpers/projects_helper.rb | 29 ++++++++++++++----- ...e_perceived_complexity_threshold_step3.yml | 5 ++++ 3 files changed, 27 insertions(+), 9 deletions(-) create mode 100644 changelogs/unreleased/31358_decrease_perceived_complexity_threshold_step3.yml diff --git a/.rubocop.yml b/.rubocop.yml index dbeb1880d39..a900f2e39f9 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -665,7 +665,7 @@ Metrics/ParameterLists: # A complexity metric geared towards measuring complexity for a human reader. Metrics/PerceivedComplexity: Enabled: true - Max: 15 + Max: 14 # Lint ######################################################################## diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 20e050195ea..d085c1a0e57 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -15,7 +15,7 @@ def link_to_project(project) end def link_to_member_avatar(author, opts = {}) - default_opts = { size: 16 } + default_opts = { size: 16, lazy_load: false } opts = default_opts.merge(opts) classes = %W[avatar avatar-inline s#{opts[:size]}] @@ -27,8 +27,26 @@ def link_to_member_avatar(author, opts = {}) image_tag(src, width: opts[:size], class: classes, alt: '', "data-src" => avatar) end + def author_content_tag(author, opts = {}) + default_opts = { author_class: 'author', tooltip: false, by_username: false } + opts = default_opts.merge(opts) + + has_tooltip = !opts[:by_username] && opts[:tooltip] + + username = opts[:by_username] ? author.to_reference : author.name + name_tag_options = { class: [opts[:author_class]] } + + if has_tooltip + name_tag_options[:title] = author.to_reference + name_tag_options[:data] = { placement: 'top' } + name_tag_options[:class] << 'has-tooltip' + end + + content_tag(:span, sanitize(username), name_tag_options) + end + def link_to_member(project, author, opts = {}, &block) - default_opts = { avatar: true, name: true, size: 16, author_class: 'author', title: ":name", tooltip: false, lazy_load: false } + default_opts = { avatar: true, name: true, title: ":name" } opts = default_opts.merge(opts) return "(deleted)" unless author @@ -39,12 +57,7 @@ def link_to_member(project, author, opts = {}, &block) author_html << link_to_member_avatar(author, opts) if opts[:avatar] # Build name span tag - if opts[:by_username] - author_html << content_tag(:span, sanitize("@#{author.username}"), class: opts[:author_class]) if opts[:name] - else - tooltip_data = { placement: 'top' } - author_html << content_tag(:span, sanitize(author.name), class: [opts[:author_class], ('has-tooltip' if opts[:tooltip])], title: (author.to_reference if opts[:tooltip]), data: (tooltip_data if opts[:tooltip])) if opts[:name] - end + author_html << author_content_tag(author, opts) if opts[:name] author_html << capture(&block) if block diff --git a/changelogs/unreleased/31358_decrease_perceived_complexity_threshold_step3.yml b/changelogs/unreleased/31358_decrease_perceived_complexity_threshold_step3.yml new file mode 100644 index 00000000000..8ecb832041e --- /dev/null +++ b/changelogs/unreleased/31358_decrease_perceived_complexity_threshold_step3.yml @@ -0,0 +1,5 @@ +--- +title: Decrease Perceived Complexity threshold to 14 +merge_request: 14231 +author: Maxim Rydkin +type: other -- GitLab