Sha256: b0e3b2309e8d77562851410c738ef0817ceb5a84b882cacece0598db24412f48

Contents?: true

Size: 815 Bytes

Versions: 2

Compression:

Stored size: 815 Bytes

Contents

# frozen_string_literal: true

require 'tzinfo'

module Trifle
  module Ruby
    class Configuration
      attr_accessor :driver, :track_ranges, :separator, :time_zone,
                    :beginning_of_week

      def initialize
        @separator = '::'
        @ranges = %i[minute hour day week month quarter year]
        @beginning_of_week = :monday
      end

      def tz
        TZInfo::Timezone.get(@time_zone)
      rescue TZInfo::InvalidTimezoneIdentifier => e
        puts "Trifle: #{e} - #{time_zone_name}; Defaulting to GMT."

        TZInfo::Timezone.get('GMT')
      end

      def ranges
        return @ranges if blank?(track_ranges)

        @ranges & track_ranges
      end

      private

      def blank?(obj)
        obj.respond_to?(:empty?) ? !!obj.empty? : !obj
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
trifle-ruby-3.0.1 lib/trifle/ruby/configuration.rb
trifle-ruby-3.0.0 lib/trifle/ruby/configuration.rb