Class: Mio::Model::Variant
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_hash ⇒ Object
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
metadata_definitions = metadata_definition_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] = metadata_definition_ids(metadata_definitions, @args.metadataDefinitions)
h[:defaultMetadataDefinition] = metadata_definition_id(metadata_definitions, @args.defaultMetadataDefinition)
end
h
end
|
#go ⇒ Object
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
|
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/mio/model/variant.rb', line 12
def metadata_definition_hash metadata_definitions
r = 'metadataDefinitions'
all_metadata_definitions = @client.find_all(r)
return nil if all_metadata_definitions['totalCount'] == 0
metadata_definitions_to_keep = []
metadata_definitions.each do |metadata_definition|
found_md = all_metadata_definitions[r].find{|md| md['name'] == metadata_definition}
unless found_md.nil?
metadata_definitions_to_keep << found_md
end
end
{'md': metadata_definitions_to_keep}
end
|
27
28
29
30
31
32
33
34
|
# File 'lib/mio/model/variant.rb', line 27
def metadata_definition_id metadata_defintions, metadata_definition_name
md = metadata_defintions[:md].find{|md| md['name'] == metadata_definition_name}
if md.nil?
raise Mio::Model::NoSuchResource, 'No such metadata definition[' + metadata_definition_name + ']'
end
md['id']
end
|
36
37
38
39
40
41
42
43
|
# File 'lib/mio/model/variant.rb', line 36
def metadata_definition_ids metadata_definitions, metadata_definition_names
md_ids = []
metadata_definition_names.each do |md_name|
md_ids << metadata_definition_id(metadata_definitions, md_name)
end
md_ids
end
|