Sha256: 4088524960b327d117a294503e4a7c6860a57d4ea5c8e7cbbd1415e35cdbd248
Contents?: true
Size: 485 Bytes
Versions: 8
Compression:
Stored size: 485 Bytes
Contents
# frozen_string_literal: true module Attractor # converts a duration string into an amount of days class DurationParser TOKENS = { 'd' => 1, 'w' => 7, 'm' => 30, 'y' => 365 }.freeze attr_reader :duration def initialize(input) @input = input @duration = 0 parse end def parse @input.scan(/(\d+)(\w)/).each do |amount, measure| @duration += amount.to_i * TOKENS[measure] end end end end
Version data entries
8 entries across 8 versions & 1 rubygems