Class: Mio::Model::Variant

Inherits:
Mio::Model show all
Defined in:
lib/mio/model/variant.rb

Instance Attribute Summary

Attributes inherited from Mio::Model

#args, #client, #search

Instance Method Summary collapse

Methods inherited from Mio::Model

#configure, #create, field, #initialize, mappings, nested, #set_enable, set_resource, #set_start, #validate

Constructor Details

This class inherits a constructor from Mio::Model

Instance Method Details

#create_hashObject



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/mio/model/variant.rb', line 45

def create_hash
   =  @args.metadataDefinitions

  object_type = @search.find_objectTypes_by_name(@args.objectType).first
  if object_type.nil?
    raise Mio::Model::NoSuchResource, 'No such object type [' + @args.objectType + ']'
  end

  h = {name: @args.name,
   objectTypeId: object_type['id'],
   defaultVariant: @args.defaultVariant}

  unless @args.metadataDefinitions.empty?
    h[:metadataDefinitionIds] = (, @args.metadataDefinitions)
    h[:defaultMetadataDefinition] = (, @args.defaultMetadataDefinition)
  end

  h
end

#goObject



65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/mio/model/variant.rb', line 65

def go
  if (@args.metadataDefinitions.empty? && (@args.objectType != 'text-asset'))
    raise Mio::Model::EmptyField, 'Field metadataDefinitions to Mio::Model::Variant contain at least one metadata definition name'
  end

  unless look_up
    @object = create
  else
    @object = look_up
  end

  return @object
end

#metadata_definition_hash(metadata_definitions) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/mio/model/variant.rb', line 12

def  
  r = 'metadataDefinitions'
   = @client.find_all(r)
  return nil if ['totalCount'] == 0
   = []
  .each do ||
    found_md = [r].find{|md| md['name'] == }
    unless found_md.nil?
       << found_md
    end
  end

  {'md': }
end

#metadata_definition_id(metadata_defintions, metadata_definition_name) ⇒ Object



27
28
29
30
31
32
33
34
# File 'lib/mio/model/variant.rb', line 27

def  , 
  md = [:md].find{|md| md['name'] == }
  if md.nil?
    raise Mio::Model::NoSuchResource, 'No such metadata definition[' +  + ']'
  end

  md['id']
end

#metadata_definition_ids(metadata_definitions, metadata_definition_names) ⇒ Object



36
37
38
39
40
41
42
43
# File 'lib/mio/model/variant.rb', line 36

def  , 
  md_ids = []
  .each do |md_name|
    md_ids << (, md_name)
  end

  md_ids
end