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
|
# 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
{name: @args.name,
objectTypeId: object_type['id'],
defaultVariant: @args.defaultVariant,
metadataDefinitionIds: metadata_definition_ids(metadata_definitions, @args.metadataDefinitions),
defaultMetadataDefinition: metadata_definition_id(metadata_definitions, @args.defaultMetadataDefinition)}
end
|
#go ⇒ Object
60
61
62
63
64
65
66
67
68
69
70
71
72
|
# File 'lib/mio/model/variant.rb', line 60
def go
if @args.metadataDefinitions.empty?
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
|