class Deeds::Journals::Entry
Attributes
error[R]
input[R]
line[R]
node[R]
Public Class Methods
new(input:, line: 1)
click to toggle source
# File lib/deeds/journals/entry.rb, line 9 def initialize(input:, line: 1) @input = input @line = line parse! # Could be lazy, but that would be too complex end
Public Instance Methods
activity()
click to toggle source
# File lib/deeds/journals/entry.rb, line 55 def activity node.try!(:activity) rescue Citrus::ParseError nil end
date()
click to toggle source
# File lib/deeds/journals/entry.rb, line 35 def date node.try!(:date) rescue Citrus::ParseError nil end
dump()
click to toggle source
# File lib/deeds/journals/entry.rb, line 15 def dump %(#{date} #{minutes}m \# #{hours.to_f.round(1)} hours) end
hours()
click to toggle source
# File lib/deeds/journals/entry.rb, line 51 def hours BigDecimal.new(minutes) / 60 end
minutes()
click to toggle source
# File lib/deeds/journals/entry.rb, line 45 def minutes node.try!(:minutes) rescue Citrus::ParseError nil end
minutes?()
click to toggle source
# File lib/deeds/journals/entry.rb, line 41 def minutes? !minutes.zero? end
mjd()
click to toggle source
# File lib/deeds/journals/entry.rb, line 19 def mjd date.mjd end
monday?()
click to toggle source
# File lib/deeds/journals/entry.rb, line 23 def monday? date.monday? end
sunday?()
click to toggle source
# File lib/deeds/journals/entry.rb, line 27 def sunday? date.sunday? end
work_day?()
click to toggle source
# File lib/deeds/journals/entry.rb, line 31 def work_day? !date.saturday? && !date.sunday? end
Private Instance Methods
parse!()
click to toggle source
# File lib/deeds/journals/entry.rb, line 63 def parse! @node = Deeds::Grammar.parse input # Triggering possible custom Exceptions @node.date @node.minutes @node.activity rescue Citrus::ParseError => exception @error = exception end