Class: Contentful::Management::Field

Inherits:
Object
  • Object
show all
Includes:
Resource
Defined in:
lib/contentful/management/field.rb

Overview

A ContentType’s field schema

Constant Summary

Constants included from Resource

Resource::COERCIONS

Instance Attribute Summary

Attributes included from Resource

#client, #default_locale, #properties, #raw_object, #request

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Resource

#array?, #fields, #initialize, #inspect, #nested_locale_fields?, #sys

Class Method Details

.value_exists?(value) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/contentful/management/field.rb', line 45

def self.value_exists?(value)
  value.respond_to?(:empty?) && !value.empty? || !value.respond_to?(:empty?) && value
end

Instance Method Details

#deep_merge!(field) ⇒ Object

Takes a field object of content type Merges existing properties, items and validations of field with new one



20
21
22
23
24
# File 'lib/contentful/management/field.rb', line 20

def deep_merge!(field)
  merge_properties(field.properties)
  merge_items(field.items)
  merge_validations(field.validations)
end

#parse_value(key, value) ⇒ Object

Return parsed value of field object



34
35
36
37
38
39
40
41
42
43
# File 'lib/contentful/management/field.rb', line 34

def parse_value(key, value)
  case key
    when :items
      value.properties_to_hash if type == 'Array' && value.is_a?(Field)
    when :validations
      validations_to_hash(value) if value.is_a?(::Array)
    else
      value if self.class.value_exists?(value)
  end
end

#properties_to_hashObject

Extract values of field to hash



27
28
29
30
31
# File 'lib/contentful/management/field.rb', line 27

def properties_to_hash
  properties.each_with_object({}) do |(key, value), results|
    results[key] = parse_value(key, value)
  end
end