Sha256: 8ca1db5591e0d6e120779ff9366bd2c8a963743651f2993a9f892a37c9af492c

Contents?: true

Size: 936 Bytes

Versions: 3

Compression:

Stored size: 936 Bytes

Contents

# frozen_string_literal: true

require "solid_cable/version"
require "solid_cable/engine"
require "action_cable/subscription_adapter/solid_cable"

module SolidCable
  class << self
    def connects_to
      cable_config.connects_to.to_h.deep_transform_values(&:to_sym)
    end

    def silence_polling?
      !!cable_config.silence_polling
    end

    def polling_interval
      parse_duration(cable_config.polling_interval, default: 0.1.seconds)
    end

    def message_retention
      parse_duration(cable_config.message_retention, default: 1.day)
    end

    def autotrim?
      cable_config.autotrim != false
    end

    private

    def cable_config
      Rails.application.config_for("cable")
    end

    def parse_duration(duration, default:)
      if duration.present?
        *amount, units = duration.to_s.split(".")
        amount.join(".").to_f.public_send(units)
      else
        default
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
solid_cable-2.0.2 lib/solid_cable.rb
solid_cable-2.0.1 lib/solid_cable.rb
solid_cable-2.0.0 lib/solid_cable.rb