Sha256: 9442a673939f8b7febf406c55985244d2c349e7ecbd63fd802955d9f15247ffc
Contents?: true
Size: 1.47 KB
Versions: 2
Compression:
Stored size: 1.47 KB
Contents
# frozen_string_literal: true require 'set' module SidekiqSimpleDelay # utility methods class Utils class << self SYSTEM_SIMPLE_CLASSES = Set.new( [ NilClass, TrueClass, FalseClass, String, Symbol ] ).freeze SYSTEM_SIMPLE_COMPLEX_CLASSES = Set.new( [ Hash, Array ] ).freeze SYSTEM_SIMPLE_NUMERIC_CLASSES = if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.4.0') Set.new([Integer, Float]).freeze else Set.new([Fixnum, Bignum, Float]).freeze end # @private def simple_object?(obj) klass = obj.class if SYSTEM_SIMPLE_COMPLEX_CLASSES.include?(klass) obj.all? { |o| simple_object?(o) } elsif SYSTEM_SIMPLE_CLASSES.include?(klass) true elsif SYSTEM_SIMPLE_NUMERIC_CLASSES.include?(klass) true else false end end # @private def extract_option(opts, arg, default = nil) [arg.to_sym, arg.to_s].each do |a| next unless opts.key?(a) return opts.delete(a) end default end if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.3.0') def random_number(duration) SecureRandom.random_number(duration) end else def random_number(duration) rand * duration end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sidekiq_simple_delay-0.2.1 | lib/sidekiq_simple_delay/utils.rb |
sidekiq_simple_delay-0.2.0 | lib/sidekiq_simple_delay/utils.rb |