Sha256: 9616be5bd763de77b337e0f6487674110b2f32591c6802267b0866cdb9345223

Contents?: true

Size: 1.17 KB

Versions: 23

Compression:

Stored size: 1.17 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 "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

23 entries across 23 versions & 1 rubygems

Version Path
infopark_cloud_connector-6.8.0.348.160665197 lib/rails_connector/obj_data_from_service.rb
infopark_cloud_connector-6.8.0.328.4a753fc lib/rails_connector/obj_data_from_service.rb
infopark_cloud_connector-6.8.0.322.c003f11 lib/rails_connector/obj_data_from_service.rb