Sha256: 6d2aff1b84fd9d231ced469d29380c7998afe4d834ee9e6d9de31dce48cb079e
Contents?: true
Size: 872 Bytes
Versions: 3
Compression:
Stored size: 872 Bytes
Contents
module Wolfe class TimespanFromConfiguration SUPPORTED_TIME_UNITS = %w(hours days months years).freeze def initialize(config) config = split_duration_and_unit(config) @duration = Integer(config['duration']) @unit = config['unit'] @unit = (@unit.to_s << 's').to_sym unless @unit.to_s.end_with? 's' raise ArgumentError.new("Invalid time unit #{config['unit'].inspect}, expected one of #{SUPPORTED_TIME_UNITS.join(', ')}") unless supported_time_unit? end def timespan @duration.send(@unit) end def keep_one_backup? @duration.to_i != 0 end private def supported_time_unit? SUPPORTED_TIME_UNITS.include?(@unit.to_s) end def split_duration_and_unit(config) { 'duration' => config.split('.')[0].to_i, 'unit' => config.split('.')[1].to_sym } end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
wolfe-1.3.1 | lib/wolfe/timespan_from_configuration.rb |
wolfe-1.3.0 | lib/wolfe/timespan_from_configuration.rb |
wolfe-1.2.0 | lib/wolfe/timespan_from_configuration.rb |