Class: NominetEPP::Contact::UpdateExtension

Inherits:
RequestExtension show all
Defined in:
lib/nominet-epp/requests/contact/update.rb

Constant Summary collapse

KEYS =
[:trad_name, :type, :co_no, :opt_out]
NAMESPACE =
'http://www.nominet.org.uk/epp/xml/contact-nom-ext-1.0'

Instance Attribute Summary

Attributes inherited from RequestExtension

#namespaces

Instance Method Summary collapse

Methods inherited from RequestExtension

#schemaLocation, #schema_name, #set_namespaces, #x_namespace, #x_node, #x_schemaLocation, #xml_namespace, #xml_node

Constructor Details

#initialize(attributes) ⇒ UpdateExtension

Returns a new instance of UpdateExtension.

Raises:

  • (ArgumentError)


29
30
31
32
33
# File 'lib/nominet-epp/requests/contact/update.rb', line 29

def initialize(attributes)
  raise ArgumentError, "must provide Hash of #{KEYS.map(&:inspect).join(", ")}" if attributes.nil? || attributes.empty?
  @attributes = attributes
  @namespaces = {}
end

Instance Method Details

#namespace_nameObject



38
39
40
# File 'lib/nominet-epp/requests/contact/update.rb', line 38

def namespace_name
  'contact-ext'
end

#namespace_uriObject



35
36
37
# File 'lib/nominet-epp/requests/contact/update.rb', line 35

def namespace_uri
  NAMESPACE
end

#to_xmlObject



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/nominet-epp/requests/contact/update.rb', line 42

def to_xml
  node = x_node('update')
  x_schemaLocation(node)

  KEYS.each do |key|
    value = @attributes[key]
    next if value.nil? || value == ''

    case key
    when :opt_out
      node << x_node('opt-out', value ? 'Y' : 'N')
    else
      name = key.to_s.gsub('_', '-')
      node << x_node(name, value.to_s)
    end
  end

  node
end