Skip to content
Kward Search API index

Module: Kward::DiffViewMode

Defined in:
lib/kward/diff_view_mode.rb

Overview

Normalizes and resolves the integrated diff viewer display mode.

Constant Summary collapse

AUTO =
"auto"
UNIFIED =
"unified"
SIDE_BY_SIDE =
"side_by_side"
MODES =
[AUTO, UNIFIED, SIDE_BY_SIDE].freeze
SIDE_BY_SIDE_MIN_WIDTH =
120

Class Method Summary collapse

Class Method Details

.label(value) ⇒ Object



18
19
20
21
22
23
24
25
26
27
# File 'lib/kward/diff_view_mode.rb', line 18

def label(value)
  case normalize(value)
  when SIDE_BY_SIDE
    "side-by-side"
  when UNIFIED
    "unified"
  else
    "auto"
  end
end

.normalize(value) ⇒ Object



13
14
15
16
# File 'lib/kward/diff_view_mode.rb', line 13

def normalize(value)
  text = value.to_s.downcase.tr("-", "_")
  MODES.include?(text) ? text : AUTO
end

.resolve(value, terminal_width: nil) ⇒ Object



29
30
31
32
33
34
# File 'lib/kward/diff_view_mode.rb', line 29

def resolve(value, terminal_width: nil)
  mode = normalize(value)
  return mode unless mode == AUTO

  terminal_width.to_i >= SIDE_BY_SIDE_MIN_WIDTH ? SIDE_BY_SIDE : UNIFIED
end