Module: BlameHelper

Included in:
Gitlab::BlamePresenter
Defined in:
app/helpers/blame_helper.rb

Constant Summary collapse

BODY_FONT_SIZE =
"0.875rem"
COMMIT_LINE_HEIGHT =

150% * 2 lines of text

3
COMMIT_PADDING =

5px from both top and bottom

"10px"
COMMIT_BLOCK_HEIGHT_EXP =
"(#{BODY_FONT_SIZE} * #{COMMIT_LINE_HEIGHT}) + #{COMMIT_PADDING}"
CODE_LINE_HEIGHT =
1.1875
CODE_PADDING =

10px from both top and bottom

"20px"

Instance Method Summary collapse

Instance Method Details

#age_map_class(commit_date, duration) ⇒ Object


22
23
24
25
26
27
28
29
30
31
32
33
# File 'app/helpers/blame_helper.rb', line 22

def age_map_class(commit_date, duration)
  if duration[:started_days_ago] == 0
    "blame-commit-age-0"
  else
    commit_date_days_ago = (duration[:now] - commit_date).to_i / 1.day
    # Numbers 0 to 10 come from this calculation, but only commits on the oldest
    # day get number 10 (all other numbers can be multiple days), so the range
    # is normalized to 0-9
    age_group = [(10 * commit_date_days_ago) / duration[:started_days_ago], 9].min
    "blame-commit-age-#{age_group}"
  end
end

#age_map_duration(blame_groups, project) ⇒ Object


11
12
13
14
15
16
17
18
19
20
# File 'app/helpers/blame_helper.rb', line 11

def age_map_duration(blame_groups, project)
  now = Time.zone.now
  start_date = blame_groups.map { |blame_group| blame_group[:commit].committed_date }
    .append(project.created_at).min

  {
    now: now,
    started_days_ago: (now - start_date).to_i / 1.day
  }
end

#intrinsic_row_css(line_count) ⇒ Object


35
36
37
38
39
40
41
# File 'app/helpers/blame_helper.rb', line 35

def intrinsic_row_css(line_count)
  # using rems here because the size of the row depends on the text size
  # which can be customized via user agent styles and browser preferences
  total_line_height_exp = "#{line_count * CODE_LINE_HEIGHT}rem + #{CODE_PADDING}"
  row_height_exp = line_count == 1 ? COMMIT_BLOCK_HEIGHT_EXP : total_line_height_exp
  "contain-intrinsic-size: 1px calc(#{row_height_exp})"
end