Class: Kameleoon::CustomData
- Defined in:
- lib/kameleoon/data/custom_data.rb
Overview
Represents any custom data for targeting conditions
Instance Attribute Summary collapse
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#values ⇒ Object
readonly
Returns the value of attribute values.
Attributes inherited from Data
Instance Method Summary collapse
- #initialize(arg0, *args) ⇒ Object constructor
-
#obtain_full_post_text_line ⇒ Object
rubocop:enable Metrics/MethodLength.
Methods inherited from Data
Constructor Details
#initialize(arg0, *args) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/kameleoon/data/custom_data.rb', line 18 def initialize(arg0, *args) super(DataType::CUSTOM) if arg0.is_a?(Hash) hash = arg0 id = hash['id'] raise Kameleoon::Exception::NotFound.new('id'), '"id" is mandatory' if id.nil? @id = id.to_s value = hash['value'] values = hash['values'] if values.nil? && value.nil? raise Kameleoon::Exception::NotFound.new('value or values'), '"value" or "values" is mandatory' end if values.nil? @values = [value] else @values = values.is_a?(Array) ? values.dup : [values] @values.append(value) unless value.nil? end else @id = arg0.to_s @values = args end end |
Instance Attribute Details
#id ⇒ Object (readonly)
Returns the value of attribute id.
9 10 11 |
# File 'lib/kameleoon/data/custom_data.rb', line 9 def id @id end |
#values ⇒ Object (readonly)
Returns the value of attribute values.
9 10 11 |
# File 'lib/kameleoon/data/custom_data.rb', line 9 def values @values end |
Instance Method Details
#obtain_full_post_text_line ⇒ Object
rubocop:enable Metrics/MethodLength
45 46 47 48 49 50 51 |
# File 'lib/kameleoon/data/custom_data.rb', line 45 def obtain_full_post_text_line return '' if @values.empty? str_values = JSON.generate(Hash[@values.collect { |k| [k, 1] }]) nonce = Kameleoon::Utils.generate_random_string(NONCE_LENGTH) "eventType=customData&index=#{@id}&valuesCountMap=#{self.class.encode(str_values)}&overwrite=true&nonce=#{nonce}" end |