Class: NominetEPP::Domain::CreateExtension

Inherits:
RequestExtension show all
Defined in:
lib/nominet-epp/requests/domain/create.rb

Constant Summary collapse

KEYS =
[:first_bill, :recur_bill, :auto_bill, :next_bill,
:auto_period, :next_period, :notes, :reseller]
NAMESPACE =
'http://www.nominet.org.uk/epp/xml/domain-nom-ext-1.2'

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) ⇒ CreateExtension

Returns a new instance of CreateExtension.

Raises:

  • (ArgumentError)


30
31
32
33
34
# File 'lib/nominet-epp/requests/domain/create.rb', line 30

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



39
40
41
# File 'lib/nominet-epp/requests/domain/create.rb', line 39

def namespace_name
  'domain-ext'
end

#namespace_uriObject



36
37
38
# File 'lib/nominet-epp/requests/domain/create.rb', line 36

def namespace_uri
  NAMESPACE
end

#to_xmlObject



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/nominet-epp/requests/domain/create.rb', line 43

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

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

    case key
    when :notes
      Array(value).each do |note|
        node << x_node('notes', note)
      end
    else
      name = key.to_s.gsub('_', '-')
      node << x_node(name, value.to_s)
    end
  end

  node
end