Sha256: 0e529e9f64d3dd5092ce79395ed496135c182cbb8c5711715a9a641a8a7816b2
Contents?: true
Size: 999 Bytes
Versions: 2
Compression:
Stored size: 999 Bytes
Contents
# frozen_string_literal: true require 'dry/effects/effect' require 'dry/effects/constructors' module Dry module Effects module Effects class CurrentTime < ::Module CurrentTime = Effect.new(type: :current_time) Constructors.register(:CurrentTime) do |**kwargs| if kwargs.empty? CurrentTime else CurrentTime.payload(kwargs) end end def initialize(options = EMPTY_HASH) module_eval do define_method(:current_time) do |round: Undefined, refresh: false| round_to = Undefined.coalesce(round, options.fetch(:round, Undefined)) if Undefined.equal?(round_to) && refresh.equal?(false) effect = CurrentTime else effect = CurrentTime.payload(round_to: round_to, refresh: refresh) end ::Dry::Effects.yield(effect) end end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dry-effects-0.1.1 | lib/dry/effects/effects/current_time.rb |
dry-effects-0.1.0 | lib/dry/effects/effects/current_time.rb |