Sha256: 7849530b1566a7574ba9a1c765d4f3fcf55d5faf173cd9179eb36ab255ba0a5b

Contents?: true

Size: 1.2 KB

Versions: 4

Compression:

Stored size: 1.2 KB

Contents

module RailsConnector

  class ObjDataFromService < ObjData
    def initialize(data)
      @data = data
    end

    def value_and_type_of(attribute_name)
      value_and_type = @data[attribute_name]

      if value_and_type.blank?
        if INTERNAL_KEYS.include?(attribute_name)
          type = type_of_internal(attribute_name)
          [default_attribute_value(type), type]
        else
          raise RailsConnectorError.new("Illegal attribute name #{attribute_name}")
        end
      elsif value_and_type.length == 1
        [value_and_type.first, type_of_internal(attribute_name)]
      else
        value_and_type
      end
    end

    def has_custom_attribute?(attribute_name)
      is_custom_attribute?(attribute_name) && !!@data[attribute_name]
    end

    private

    def is_custom_attribute?(attribute_name)
      !attribute_name.starts_with?('_')
    end

    internal_key_list = %w[
      last_changed
      permalink
      sort_key1
      sort_key2
      sort_key3
      sort_order
      sort_type1
      sort_type2
      sort_type3
      suppress_export
      text_links
      valid_from
      valid_until
    ]

    INTERNAL_KEYS = Set.new(internal_key_list.map { |name| "_#{name}" } )

  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
infopark_cloud_connector-6.9.4 lib/rails_connector/obj_data_from_service.rb
infopark_cloud_connector-6.9.3.1.36404185 lib/rails_connector/obj_data_from_service.rb
infopark_cloud_connector-6.9.2.1.125136549 lib/rails_connector/obj_data_from_service.rb
infopark_cloud_connector-6.9.1.3.22208381 lib/rails_connector/obj_data_from_service.rb