Class: Contentful::Converter::ContentTypesStructureCreator

Inherits:
Object
  • Object
show all
Defined in:
lib/converters/content_types_structure_creator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ ContentTypesStructureCreator

Returns a new instance of ContentTypesStructureCreator.



7
8
9
# File 'lib/converters/content_types_structure_creator.rb', line 7

def initialize(config)
  @config = config
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



5
6
7
# File 'lib/converters/content_types_structure_creator.rb', line 5

def config
  @config
end

Instance Method Details

#create_content_type_json_file(content_type_name, values) ⇒ Object



11
12
13
14
15
16
17
18
19
20
# File 'lib/converters/content_types_structure_creator.rb', line 11

def create_content_type_json_file(content_type_name, values)
  collection = {
      id: values[:id],
      name: values[:name],
      description: values[:description],
      displayField: values[:displayField],
      fields: create_fields(values[:fields])
  }
  write_json_to_file("#{config.collections_dir}/#{content_type_name}.json", collection)
end

#create_field(field, value) ⇒ Object



34
35
36
# File 'lib/converters/content_types_structure_creator.rb', line 34

def create_field(field, value)
  value.is_a?(Hash) ? value[:id] : field
end

#create_fields(fields) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/converters/content_types_structure_creator.rb', line 22

def create_fields(fields)
  fields.each_with_object([]) do |(field, value), results|
    results << {
        name: create_field(field, value).capitalize,
        id: create_field(field, value),
        type: create_type_field(value),
        link_type: create_link_type_field(value),
        link: create_link_field(value)
    }.compact
  end
end


46
47
48
# File 'lib/converters/content_types_structure_creator.rb', line 46

def create_link_field(value)
  value.is_a?(Hash) ? value[:link] : nil
end


38
39
40
# File 'lib/converters/content_types_structure_creator.rb', line 38

def create_link_type_field(value)
  value.is_a?(Hash) ? value[:link_type] : nil
end

#create_type_field(value) ⇒ Object



42
43
44
# File 'lib/converters/content_types_structure_creator.rb', line 42

def create_type_field(value)
  value.is_a?(Hash) ? value[:type] : value
end

#write_json_to_file(path, data) ⇒ Object



50
51
52
53
54
# File 'lib/converters/content_types_structure_creator.rb', line 50

def write_json_to_file(path, data)
  File.open(path, 'w') do |file|
    file.write(JSON.pretty_generate(data))
  end
end