class Mio::Model::MetadataDefinition

Public Instance Methods

build_xml() click to toggle source
# File lib/mio/model/metadata_definition.rb, line 24
def build_xml
  xml_builder = Nokogiri::XML::Builder.new do |xml|
    xml.metadata(name: @args.name ) {
      xml.searchable @args.searchable.to_s
      xml.editable @args.editable.to_s
      xml.required @args.required.to_s
      xml.children do |children|
        @args.definitions.each do |defs|
          definition = Mio::Model::MetadataDefinition::Definition.new @client, OpenStruct.new(defs)
          definition.build_xml children
        end
      end
    }
  end
  xml_builder.to_xml
end
create_hash() click to toggle source
# File lib/mio/model/metadata_definition.rb, line 19
def create_hash
  {name: @args.name,
   visibilityIds: @args.visibility}
end
go() click to toggle source
# File lib/mio/model/metadata_definition.rb, line 41
def go
  if @args.definitions.empty?
    raise Mio::Model::EmptyField, 'Field definitions to Mio::Model::MetadataDefinition must contain at least one definition'
  end

  @object = look_up
  unless @object
    @object = create
  else
    set_start :stop
  end
  definition_path = "#{self.class.resource_name}/#{@object['id']}/definition"

  @client.definition definition_path, build_xml

  set_enable
  return @object
end