Sha256: 954f3e586758b8c3b6e8d627f4d3436644b24df621caefd75efa36e6098de418
Contents?: true
Size: 998 Bytes
Versions: 8
Compression:
Stored size: 998 Bytes
Contents
require_dependency "renalware/pd" module Renalware module PD class TrainingDurationPresenter def initialize(duration) @interval = duration.present? ? parse_iso8601_duration(duration) : NullObject.instance end def to_s interval.to_formatted_s end # An array of delivery interval options derived from the PD configuration, and using an # iso8601 representation of the duration (eg "P4W" for 4 weeks), e.g. # [ # [ # "1 week", "P1W", # "1 year", "P1Y", # ... # ] # ] # Note use Duration#to_formatted_s when rendering out a duration anywhere in the app. def self.dropdown_options PD.config.training_durations.map do |duration| [duration.to_formatted_s, duration.iso8601] end end private attr_reader :interval def parse_iso8601_duration(duration) ActiveSupport::Duration.parse(duration) end end end end
Version data entries
8 entries across 8 versions & 1 rubygems