Module: PredictabilityEngine::VegaVisualizer::TooltipHelpers

Included in:
PredictabilityEngine::VegaVisualizer
Defined in:
lib/predictability_engine/vega_visualizer/tooltip_helpers.rb

Constant Summary collapse

TOOLTIP_WRAP_WIDTH =
40

Instance Method Summary collapse

Instance Method Details

#cfd_tooltip_fieldsObject



18
19
20
21
# File 'lib/predictability_engine/vega_visualizer/tooltip_helpers.rb', line 18

def cfd_tooltip_fields
  [{ field: 'date', type: 'temporal', title: 'Date' }, { field: 'type', type: 'nominal', title: 'Type' },
   { field: 'count', type: 'quantitative', title: 'Items' }]
end

#cycle_time_tooltip_field(field: 'cycle_time') ⇒ Object



14
15
16
# File 'lib/predictability_engine/vega_visualizer/tooltip_helpers.rb', line 14

def cycle_time_tooltip_field(field: 'cycle_time')
  { field: field, type: 'quantitative', title: 'Cycle Time (days)' }
end

#item_href_and_tooltip(extra) ⇒ Object



11
# File 'lib/predictability_engine/vega_visualizer/tooltip_helpers.rb', line 11

def item_href_and_tooltip(extra) = { href: url_href, tooltip: standard_item_tooltip_fields + extra }

#item_id_tooltip_fieldObject



8
# File 'lib/predictability_engine/vega_visualizer/tooltip_helpers.rb', line 8

def item_id_tooltip_field = { field: 'id', type: 'nominal', title: 'Work Item ID' }

#standard_item_tooltip_fieldsObject



10
# File 'lib/predictability_engine/vega_visualizer/tooltip_helpers.rb', line 10

def standard_item_tooltip_fields = [item_id_tooltip_field, title_tooltip_field]

#title_tooltip_fieldObject



9
# File 'lib/predictability_engine/vega_visualizer/tooltip_helpers.rb', line 9

def title_tooltip_field = { field: 'title_display', type: 'nominal', title: 'Title' }

#url_hrefObject



12
# File 'lib/predictability_engine/vega_visualizer/tooltip_helpers.rb', line 12

def url_href = { field: 'url', type: 'nominal' }

#wrap_tooltip_title(text, width: TOOLTIP_WRAP_WIDTH) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'lib/predictability_engine/vega_visualizer/tooltip_helpers.rb', line 23

def wrap_tooltip_title(text, width: TOOLTIP_WRAP_WIDTH)
  str = text.to_s
  return str if str.length <= width

  str.split.each_with_object(['']) do |word, lines|
    lines << '' if "#{lines.last} #{word}".strip.length > width
    lines[-1] = "#{lines.last} #{word}".strip
  end.join("\n")
end