module VWO::Utils::Validations
Public Instance Methods
is_valid_batch_event_settings(batch_events)
click to toggle source
Validates if the value passed batch_events has correct data type and values or not.
Args: batch_events [Hash]: value to be tested
@return: [Boolean]: True if all conditions are passed else False
# File lib/vwo/utils/validations.rb, line 71 def is_valid_batch_event_settings(batch_events) logger = VWO::Logger.get_instance events_per_request = batch_events[:events_per_request] request_time_interval = batch_events[:request_time_interval] unless events_per_request || request_time_interval logger.log( VWO::LogLevelEnum::ERROR, format( VWO::LogMessageEnum::ErrorMessages::EVENT_BATCHING_INSUFFICIENT, file: VWO::FileNameEnum::ValidateUtil ) ) return false end if (request_time_interval && !valid_number?(request_time_interval)) logger.log( VWO::LogLevelEnum::ERROR, format( VWO::LogMessageEnum::ErrorMessages::REQUEST_TIME_INTERVAL_INVALID, file: VWO::FileNameEnum::ValidateUtil ) ) return false end if (events_per_request && !valid_number?(events_per_request)) logger.log( VWO::LogLevelEnum::ERROR, format( VWO::LogMessageEnum::ErrorMessages::EVENTS_PER_REQUEST_INVALID, file: VWO::FileNameEnum::ValidateUtil ) ) return false end if events_per_request && (events_per_request < VWO::MIN_EVENTS_PER_REQUEST || events_per_request > VWO::MAX_EVENTS_PER_REQUEST) logger.log( VWO::LogLevelEnum::ERROR, format( VWO::LogMessageEnum::ErrorMessages::EVENTS_PER_REQUEST_OUT_OF_BOUNDS, file: VWO::FileNameEnum::ValidateUtil, min_value: VWO::MIN_EVENTS_PER_REQUEST, max_value: VWO::MAX_EVENTS_PER_REQUEST ) ) return false end if request_time_interval && request_time_interval < VWO::MIN_REQUEST_TIME_INTERVAL logger.log( VWO::LogLevelEnum::ERROR, format( VWO::LogMessageEnum::ErrorMessages::REQUEST_TIME_INTERVAL_OUT_OF_BOUNDS, file: VWO::FileNameEnum::ValidateUtil, min_value: VWO::MIN_REQUEST_TIME_INTERVAL ) ) return false end if batch_events.key?(:flushCallback) && !batch_events[:flushCallback].is_a?(Method) logger.log( VWO::LogLevelEnum::ERROR, format( VWO::LogMessageEnum::ErrorMessages::FLUSH_CALLBACK_INVALID, file: VWO::FileNameEnum::ValidateUtil ) ) return false end true end
valid_basic_data_type?(val)
click to toggle source
@return [Boolean]
# File lib/vwo/utils/validations.rb, line 62 def valid_basic_data_type?(val) valid_number?(val) || valid_string?(val) || valid_boolean?(val) end
valid_boolean?(val)
click to toggle source
@return [Boolean]
# File lib/vwo/utils/validations.rb, line 57 def valid_boolean?(val) val.is_a?(TrueClass) || val.is_a?(FalseClass) end
valid_hash?(val)
click to toggle source
@return [Boolean]
# File lib/vwo/utils/validations.rb, line 52 def valid_hash?(val) val.is_a?(Hash) end
valid_number?(val)
click to toggle source
@return [Boolean]
# File lib/vwo/utils/validations.rb, line 42 def valid_number?(val) val.is_a?(Numeric) end
valid_settings_file?(settings_file)
click to toggle source
Validates the settings_file @param [Hash]: JSON object received from VWO
server
must be JSON.
@return [Boolean]
# File lib/vwo/utils/validations.rb, line 29 def valid_settings_file?(settings_file) settings_file = JSON.parse(settings_file) JSON::Validator.validate!(VWO::Schema::SETTINGS_FILE_SCHEMA, settings_file) rescue StandardError false end
valid_string?(val)
click to toggle source
@return [Boolean]
# File lib/vwo/utils/validations.rb, line 47 def valid_string?(val) val.is_a?(String) end
valid_value?(val)
click to toggle source
@return [Boolean]
# File lib/vwo/utils/validations.rb, line 37 def valid_value?(val) !val.nil? && val != {} && val != [] end