class GitReporting::MessageParser
Attributes
input[R]
regexp[R]
Public Class Methods
new(input)
click to toggle source
# File lib/git_reporting/message_parser.rb, line 11 def initialize(input) @input = input.to_s prefix = GitReporting.configuration.prefix @regexp = /\[\s*#{prefix && prefix + "\s*"}\s*(\d[^\[\]]*)\]/m end
parse(*args)
click to toggle source
# File lib/git_reporting/message_parser.rb, line 7 def self.parse(*args) new(*args).parse end
Public Instance Methods
parse()
click to toggle source
# File lib/git_reporting/message_parser.rb, line 17 def parse message = parse_message time = parse_time [message, time] end
Private Instance Methods
parse_message()
click to toggle source
# File lib/git_reporting/message_parser.rb, line 25 def parse_message input.gsub(regexp, "").strip end
parse_time()
click to toggle source
# File lib/git_reporting/message_parser.rb, line 29 def parse_time times = input.scan(regexp) time = if times[0] times[0][0] # we want to take only first time marker else nil end return nil unless time.present? time = "#{time}:00" if time =~ /^\d{1,2}:\d{1,2}$/ ChronicDuration.parse(time, keep_zero: true) end