class Mio::Model::Variant

Public Instance Methods

create_hash() click to toggle source
# 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() click to toggle source
# 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) click to toggle source
# 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
metadata_definition_id(metadata_defintions, metadata_definition_name) click to toggle source
# 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
metadata_definition_ids(metadata_definitions, metadata_definition_names) click to toggle source
# 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