Class: MPS::Elements::Log

Inherits:
Object
  • Object
show all
Includes:
MPS::Element
Defined in:
lib/mps/elements/log.rb

Constant Summary collapse

SIGNATURE_STAMP =
"log"
SIGNATURE_REGEX =
/\Alog\z/

Constants included from MPS::Element

MPS::Element::PADDING

Instance Attribute Summary

Attributes included from MPS::Element

#body_str, #disp_str, #parsed_args, #raw_args

Class Method Summary collapse

Instance Method Summary collapse

Methods included from MPS::Element

#display_str, #initialize, split_args, #tags

Class Method Details

.parse_args(raw) ⇒ Object



10
11
12
13
# File 'lib/mps/elements/log.rb', line 10

def self.parse_args(raw)
  p = Element.split_args(raw)
  { tags: p[:tags], start: p[:attrs][:start], end: p[:attrs][:end] }
end

Instance Method Details

#duration_minutesObject



15
16
17
18
19
20
21
22
# File 'lib/mps/elements/log.rb', line 15

def duration_minutes
  s = parsed_args[:start]
  e = parsed_args[:end]
  return nil unless s && e
  sh, sm = s.split(":").map(&:to_i)
  eh, em = e.split(":").map(&:to_i)
  (eh * 60 + em) - (sh * 60 + sm)
end

#duration_strObject



24
25
26
27
28
29
# File 'lib/mps/elements/log.rb', line 24

def duration_str
  mins = duration_minutes
  return nil unless mins && mins > 0
  h, m = mins.divmod(60)
  m > 0 ? "#{h}h#{m}m" : "#{h}h"
end