class SamsaraSDK::Config
Samsara SDK default configuration and request constants.
Constants
- API_PATH
Samsara Ingestion API endpoint
- PUBLISHED_TIMESTAMP_HEADER
Samsara specific HTTP Header
Public Class Methods
Get configuration values.
@return [Hash] Configuration values.
# File lib/samsara_sdk/config.rb, line 72 def get @values end
Set up configuration. Merges given config with defaults and validates the result.
@param input_config [Hash] Input configuration options. @raise [SamsaraSDK::ConfigValidationError] if any config option is incorrect.
# File lib/samsara_sdk/config.rb, line 64 def setup!(input_config) @values = @defaults.merge input_config validate @values end
Generates current timestamp.
@return [Integer] timestamp in milliseconds.
# File lib/samsara_sdk/config.rb, line 79 def timestamp (Time.now.to_f.round(3) * 1000).to_i end
Private Class Methods
Check value type corresponds to allowed type for particular config key.
@param key [Symbol] Configuration key. @param value [Object] Configuration value. @return [Boolean]
# File lib/samsara_sdk/config.rb, line 106 def valid_type?(key, value) if [TrueClass, FalseClass].include? @defaults[key].class return [TrueClass, FalseClass].include? value.class end value.is_a? @defaults[key].class end
Validates given configuration values.
@param config [Hash] Configuration values. @raise [SamsaraSDK::ConfigValidationError] if any config option is incorrect.
# File lib/samsara_sdk/config.rb, line 89 def validate(config) config.each do |k, v| raise ConfigValidationError, "#{k} should be of #{@defaults[k].class}" unless valid_type?(k, v) end raise ConfigValidationError, 'URL for Ingestion API should be specified.' if config[:url] == '' raise ConfigValidationError, 'Incorrect compression option.' unless [:gzip, :none].include? config[:compression] raise ConfigValidationError, 'Invalid interval time for Samsara client.' if config[:publish_interval_ms] <= 0 raise ConfigValidationError, 'max_buffer_size can not be less than min_buffer_size.' if config[:max_buffer_size] < config[:min_buffer_size] end