Module: ShopCircle::Orbit::Validation
- Defined in:
- lib/shopcircle/orbit/validation.rb
Constant Summary collapse
- MAX_EVENT_NAME_LENGTH =
80- MAX_DEVICE_ID_LENGTH =
128- MAX_PROPERTIES_BYTES =
10_240- RESERVED_NAMES =
%w[session_start session_end].freeze
Class Method Summary collapse
- .validate_device_id!(device_id) ⇒ Object
- .validate_event_name!(name) ⇒ Object
- .validate_properties!(props) ⇒ Object
Class Method Details
.validate_device_id!(device_id) ⇒ Object
29 30 31 32 |
# File 'lib/shopcircle/orbit/validation.rb', line 29 def validate_device_id!(device_id) return if device_id.nil? raise ValidationError, "device_id max #{MAX_DEVICE_ID_LENGTH} chars" if device_id.to_s.length > MAX_DEVICE_ID_LENGTH end |
.validate_event_name!(name) ⇒ Object
14 15 16 17 18 |
# File 'lib/shopcircle/orbit/validation.rb', line 14 def validate_event_name!(name) raise ValidationError, "event name is required" if name.nil? || name.to_s.strip.empty? raise ValidationError, "event name max #{MAX_EVENT_NAME_LENGTH} chars" if name.to_s.length > MAX_EVENT_NAME_LENGTH raise ValidationError, "event name '#{name}' is reserved" if RESERVED_NAMES.include?(name.to_s) end |
.validate_properties!(props) ⇒ Object
20 21 22 23 24 25 26 27 |
# File 'lib/shopcircle/orbit/validation.rb', line 20 def validate_properties!(props) return if props.nil? || props.empty? size = estimate_byte_size(props) if size > MAX_PROPERTIES_BYTES raise ValidationError, "properties too large (~#{size} bytes, max #{MAX_PROPERTIES_BYTES})" end end |