Class: Kameleoon::Configuration::CustomDataInfo

Inherits:
Object
  • Object
show all
Defined in:
lib/kameleoon/configuration/custom_data_info.rb

Constant Summary collapse

SCOPE_VISITOR =
'VISITOR'

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(hashes) ⇒ CustomDataInfo

Returns a new instance of CustomDataInfo.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/kameleoon/configuration/custom_data_info.rb', line 13

def initialize(hashes)
  @local_only = Set[]
  @visitor_scope = Set[]
  unless hashes.nil?
    for hash in hashes
      index = hash['index']
      @local_only.add(index) if hash['localOnly']
      @visitor_scope.add(index) if hash['scope'] == SCOPE_VISITOR
      if hash['isMappingIdentifier']
        unless @mapping_identifier_index.nil?
          Logging::KameleoonLogger.warning('More than one mapping identifier is set. Undefined behavior ' \
                                    'may occur on cross-device reconciliation.')

        end
        @mapping_identifier_index = index
      end
    end
  end
end

Instance Attribute Details

#local_onlyObject (readonly)

Returns the value of attribute local_only.



9
10
11
# File 'lib/kameleoon/configuration/custom_data_info.rb', line 9

def local_only
  @local_only
end

#mapping_identifier_indexObject (readonly)

Returns the value of attribute mapping_identifier_index.



9
10
11
# File 'lib/kameleoon/configuration/custom_data_info.rb', line 9

def mapping_identifier_index
  @mapping_identifier_index
end

#visitor_scopeObject (readonly)

Returns the value of attribute visitor_scope.



9
10
11
# File 'lib/kameleoon/configuration/custom_data_info.rb', line 9

def visitor_scope
  @visitor_scope
end

Class Method Details

.mapping_identifier?(custom_data_info, custom_data) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
48
# File 'lib/kameleoon/configuration/custom_data_info.rb', line 45

def self.mapping_identifier?(custom_data_info, custom_data)
  !custom_data_info.nil? && (custom_data.id == custom_data_info.mapping_identifier_index) && \
    !(custom_data.values.empty? || custom_data.values[0].empty?)
end

Instance Method Details

#local_only?(index) ⇒ Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/kameleoon/configuration/custom_data_info.rb', line 33

def local_only?(index)
  @local_only.include?(index)
end

#mapping_identifier?(index) ⇒ Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/kameleoon/configuration/custom_data_info.rb', line 37

def mapping_identifier?(index)
  index == @mapping_identifier_index
end

#visitor_scope?(index) ⇒ Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/kameleoon/configuration/custom_data_info.rb', line 41

def visitor_scope?(index)
  @visitor_scope.include?(index)
end