cps-client 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +17 -0
- data/Rakefile +2 -0
- data/Readme.textile +76 -0
- data/cps-client.gemspec +23 -0
- data/lib/core_ext.rb +55 -0
- data/lib/cps-client.rb +8 -0
- data/lib/cps-client/client.rb +102 -0
- data/lib/cps-client/config.rb +10 -0
- data/lib/cps-client/contact.rb +48 -0
- data/lib/cps-client/domain.rb +35 -0
- data/lib/cps-client/erb_helper.rb +11 -0
- data/lib/cps-client/errors.rb +267 -0
- data/lib/cps-client/version.rb +17 -0
- data/lib/erb/base.erb +11 -0
- data/lib/erb/contact_create.erb +19 -0
- data/lib/erb/contact_delete.erb +4 -0
- data/lib/erb/contact_domain.erb +13 -0
- data/lib/erb/contact_info.erb +4 -0
- data/lib/erb/domain_create.erb +16 -0
- data/lib/erb/domain_delete.erb +4 -0
- data/lib/erb/domain_info.erb +4 -0
- data/test.rb +131 -0
- metadata +106 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
cps-client (0.1.0)
|
5
|
+
always_verify_ssl_certificates (>= 0.2.0)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: http://rubygems.org/
|
9
|
+
specs:
|
10
|
+
always_verify_ssl_certificates (0.2.0)
|
11
|
+
|
12
|
+
PLATFORMS
|
13
|
+
ruby
|
14
|
+
|
15
|
+
DEPENDENCIES
|
16
|
+
always_verify_ssl_certificates (>= 0.2.0)
|
17
|
+
cps-client!
|
data/Rakefile
ADDED
data/Readme.textile
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
h1. CPS-CLIENT
|
2
|
+
|
3
|
+
Ruby api for the arp-client of cps-datensysteme.de
|
4
|
+
|
5
|
+
h2. Installation
|
6
|
+
|
7
|
+
<pre><code>sudo gem install cps-client
|
8
|
+
bundle # to install dependencies</code></pre>
|
9
|
+
|
10
|
+
h2. Howto register a domain
|
11
|
+
|
12
|
+
Create a cps-client object:
|
13
|
+
|
14
|
+
<pre><code>server = CPS::Client.new(
|
15
|
+
:cid => 'your-cid',
|
16
|
+
:uid => 'your-uid',
|
17
|
+
:pwd => 'your-pwd',
|
18
|
+
:production => false # for development
|
19
|
+
)</code></pre>
|
20
|
+
|
21
|
+
Create a client contact handle:
|
22
|
+
|
23
|
+
<pre><code>client_contact = CPS::Contact.new(
|
24
|
+
:object => 'QD1234',
|
25
|
+
:firstname => 'Peter',
|
26
|
+
:lastname => 'Pan',
|
27
|
+
:street => 'your-street',
|
28
|
+
:postal => '60000',
|
29
|
+
:city => 'Frankfurt am Main',
|
30
|
+
:state => 'Hessen',
|
31
|
+
:iso_country => 'DE',
|
32
|
+
:phone => '+49 69471117',
|
33
|
+
:fax => '+49 69471118',
|
34
|
+
:email => 'peter.pan@example.com'
|
35
|
+
)
|
36
|
+
|
37
|
+
server.query(client_contact.create)</code></pre>
|
38
|
+
|
39
|
+
Create your company contact handle:
|
40
|
+
|
41
|
+
<pre><code>company_contact = CPS::Contact.new(
|
42
|
+
:object => 'QD0001',
|
43
|
+
:firstname => 'Paulär',
|
44
|
+
:lastname => 'Panter',
|
45
|
+
:street => 'my-street',
|
46
|
+
:postal => '60000',
|
47
|
+
:city => 'Frankfurt am Main',
|
48
|
+
:state => 'Hessen',
|
49
|
+
:iso_country => 'DE',
|
50
|
+
:phone => '+49 69471123',
|
51
|
+
:fax => '+49 69471124',
|
52
|
+
:email => 'paulaer.panter@example.com'
|
53
|
+
)
|
54
|
+
|
55
|
+
server.query(company_contact.create)</code></pre>
|
56
|
+
|
57
|
+
Register the domain:
|
58
|
+
|
59
|
+
<pre><code>domain = CPS::Domain.new(
|
60
|
+
:domain => 'example-domain-123456.com',
|
61
|
+
:adminc => 'QD1234',
|
62
|
+
:ownerc => 'QD1234',
|
63
|
+
:techc => 'QD0001',
|
64
|
+
:billc => 'QD0001',
|
65
|
+
:ns1 => 'my1.dns.com',
|
66
|
+
:ns2 => 'my2.dns.com'
|
67
|
+
)
|
68
|
+
|
69
|
+
server.query(domain.create)</code></pre>
|
70
|
+
|
71
|
+
h2. Todo
|
72
|
+
|
73
|
+
- Add validation and error handling
|
74
|
+
- Add modify and transfer for domains
|
75
|
+
|
76
|
+
(c) 2011 jfqd [at] blun.org
|
data/cps-client.gemspec
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "cps-client/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "cps-client"
|
7
|
+
s.version = CPS::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["jfqd"]
|
10
|
+
s.email = ["jfqd@blun.org"]
|
11
|
+
s.homepage = "https://github.com/jfqd/cps-client"
|
12
|
+
s.summary = %q{ruby api for the arp-client of cps-datensysteme.de}
|
13
|
+
s.description = %q{ruby api for the arp-client of cps-datensysteme.de}
|
14
|
+
|
15
|
+
s.add_dependency('always_verify_ssl_certificates', '>= 0.2.0')
|
16
|
+
|
17
|
+
s.rubyforge_project = "cps-client"
|
18
|
+
|
19
|
+
s.files = `git ls-files`.split("\n")
|
20
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
21
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
22
|
+
s.require_paths = ["lib"]
|
23
|
+
end
|
data/lib/core_ext.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'iconv'
|
2
|
+
|
3
|
+
class String
|
4
|
+
|
5
|
+
CONVERTION_TABLE = {
|
6
|
+
'Ç' => 'C',
|
7
|
+
'ç' => 'c',
|
8
|
+
'[ûúù]' => 'u',
|
9
|
+
'[éêëè]' => 'e',
|
10
|
+
'[âàåá]' => 'a',
|
11
|
+
'[ïîìí]' => 'i',
|
12
|
+
'[Å]' => 'A',
|
13
|
+
'É' => 'E',
|
14
|
+
'æ' => 'ae',
|
15
|
+
'Æ' => 'Ae',
|
16
|
+
'[ôòó]' => 'o',
|
17
|
+
'Ä' => 'Ae',
|
18
|
+
'Ö' => 'Oe',
|
19
|
+
'Ü' => 'Ue',
|
20
|
+
'ä' => 'ae',
|
21
|
+
'ö' => 'oe',
|
22
|
+
'ü' => 'ue',
|
23
|
+
'ß' => 'ss',
|
24
|
+
'ÿ' => 'y',
|
25
|
+
'Ö' => 'O',
|
26
|
+
'ñ' => 'n',
|
27
|
+
'Ñ' => 'N'
|
28
|
+
}
|
29
|
+
|
30
|
+
def i18n_safe
|
31
|
+
s = self
|
32
|
+
return "" unless s
|
33
|
+
CONVERTION_TABLE.each do |key, value|
|
34
|
+
s = s.gsub(key, value)
|
35
|
+
end
|
36
|
+
return s
|
37
|
+
end
|
38
|
+
|
39
|
+
def convert_to_iso_8859_1
|
40
|
+
begin
|
41
|
+
i = Iconv.new('ISO-8859-1', 'UTF-8') # Iconv.new(to, from)
|
42
|
+
f = i.iconv(self.i18n_safe)
|
43
|
+
i.close
|
44
|
+
return f
|
45
|
+
rescue
|
46
|
+
i.close
|
47
|
+
self
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def blank?
|
52
|
+
self.nil? || self == ""
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
data/lib/cps-client.rb
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
require 'net/https'
|
2
|
+
require 'uri'
|
3
|
+
require 'rexml/document'
|
4
|
+
require 'always_verify_ssl_certificates'
|
5
|
+
|
6
|
+
module CPS
|
7
|
+
|
8
|
+
class Client
|
9
|
+
include REXML
|
10
|
+
|
11
|
+
# The Integer maximum time to run a cps query, expressed in seconds.
|
12
|
+
DEFAULT_TIMEOUT = 10
|
13
|
+
|
14
|
+
# Initializes a new <tt>Cps::Client</tt> with <tt>options</tt>.
|
15
|
+
#
|
16
|
+
# new(options = {})
|
17
|
+
#
|
18
|
+
# ==== Parameters
|
19
|
+
#
|
20
|
+
# options:: Hash of options:
|
21
|
+
# :timeout - The Integer script timeout, expressed in seconds (default: DEFAULT_TIMEOUT).
|
22
|
+
# :cid - Customer number
|
23
|
+
# :uid - User
|
24
|
+
# :pwd - Password
|
25
|
+
#
|
26
|
+
# If <tt>block</tt> is given, yields <tt>self</tt>.
|
27
|
+
#
|
28
|
+
# ==== Returns
|
29
|
+
#
|
30
|
+
# Cps::Client:: The client instance.
|
31
|
+
#
|
32
|
+
# ==== Examples
|
33
|
+
#
|
34
|
+
# client = Cps::Client.new do |c|
|
35
|
+
# c.timeout = nil
|
36
|
+
# end
|
37
|
+
# client.query("google.com")
|
38
|
+
#
|
39
|
+
def initialize(options = {})
|
40
|
+
@cid = options[:cid]
|
41
|
+
@uid = options[:uid]
|
42
|
+
@pwd = options[:pwd]
|
43
|
+
|
44
|
+
@production = options[:production] == false ? false : true
|
45
|
+
|
46
|
+
@timeout = options[:timeout] || DEFAULT_TIMEOUT
|
47
|
+
@request = ""
|
48
|
+
@response = ""
|
49
|
+
@data = ""
|
50
|
+
end
|
51
|
+
|
52
|
+
def query( object )
|
53
|
+
# AlwaysVerifySSLCertificates.ca_file = CA_FILE
|
54
|
+
url = @production == true ? URL : URL_DEV
|
55
|
+
uri = URI.parse("#{PROTO}://#{url}:#{PORT}")
|
56
|
+
@request = self.template(object)
|
57
|
+
|
58
|
+
begin
|
59
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
60
|
+
http.use_ssl = true if PROTO == 'https'
|
61
|
+
req = Net::HTTP::Post.new( PATH )
|
62
|
+
@response, @data = http.request(req, @request)
|
63
|
+
self.result_code == '1000' ? true : false
|
64
|
+
rescue
|
65
|
+
false
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
def data
|
71
|
+
@data.to_s
|
72
|
+
end
|
73
|
+
|
74
|
+
def request
|
75
|
+
@request.to_s
|
76
|
+
end
|
77
|
+
|
78
|
+
def entity(path)
|
79
|
+
d = Document.new(@data)
|
80
|
+
d.root.elements[path].text rescue ""
|
81
|
+
end
|
82
|
+
|
83
|
+
def result_code
|
84
|
+
self.entity('/response/result/code')
|
85
|
+
end
|
86
|
+
|
87
|
+
def result_message
|
88
|
+
self.entity('/response/result/message')
|
89
|
+
end
|
90
|
+
|
91
|
+
def template(xml)
|
92
|
+
@xml = xml
|
93
|
+
ErbHelper.build("base", self)
|
94
|
+
end
|
95
|
+
|
96
|
+
def get_binding
|
97
|
+
binding
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
101
|
+
|
102
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'erb'
|
2
|
+
|
3
|
+
module CPS
|
4
|
+
|
5
|
+
class Contact
|
6
|
+
attr_reader :object
|
7
|
+
|
8
|
+
def initialize(options = {})
|
9
|
+
@object = options[:object].upcase
|
10
|
+
@firstname = options[:firstname]
|
11
|
+
@lastname = options[:lastname]
|
12
|
+
@orgname = options[:orgname].nil? || options[:orgname] == "" ? "-" : options[:orgname]
|
13
|
+
@street = options[:street]
|
14
|
+
@postal = options[:postal]
|
15
|
+
@city = options[:city]
|
16
|
+
@state = options[:state]
|
17
|
+
@iso_country = options[:iso_country]
|
18
|
+
@phone = options[:phone]
|
19
|
+
@fax = options[:fax]
|
20
|
+
@email = options[:email]
|
21
|
+
@privacy_rule = options[:privacy_rule] || ""
|
22
|
+
@contact_type = @orgname == '-' ? "person" : "organisation"
|
23
|
+
end
|
24
|
+
|
25
|
+
def info
|
26
|
+
ErbHelper.build("contact_info", self)
|
27
|
+
end
|
28
|
+
|
29
|
+
def create
|
30
|
+
ErbHelper.build("contact_create", self)
|
31
|
+
end
|
32
|
+
|
33
|
+
def delete
|
34
|
+
ErbHelper.build("contact_delete", self)
|
35
|
+
end
|
36
|
+
|
37
|
+
def domain
|
38
|
+
ErbHelper.build("contact_domain", self)
|
39
|
+
end
|
40
|
+
|
41
|
+
# this is only a helper method to access the objects binding method
|
42
|
+
def get_binding
|
43
|
+
binding
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module CPS
|
2
|
+
|
3
|
+
class Domain
|
4
|
+
attr_reader :domain
|
5
|
+
|
6
|
+
def initialize(options = {})
|
7
|
+
@domain = options[:domain]
|
8
|
+
@adminc = options[:adminc]
|
9
|
+
@techc = options[:techc]
|
10
|
+
@billc = options[:billc]
|
11
|
+
@ownerc = options[:ownerc]
|
12
|
+
@ns1 = options[:ns1]
|
13
|
+
@ns2 = options[:ns2]
|
14
|
+
end
|
15
|
+
|
16
|
+
def create
|
17
|
+
ErbHelper.build("domain_create", self)
|
18
|
+
end
|
19
|
+
|
20
|
+
def info
|
21
|
+
ErbHelper.build("domain_info", self)
|
22
|
+
end
|
23
|
+
|
24
|
+
def delete
|
25
|
+
ErbHelper.build("domain_delete", self)
|
26
|
+
end
|
27
|
+
|
28
|
+
# this is only a helper method to access the objects binding method
|
29
|
+
def get_binding
|
30
|
+
binding
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
@@ -0,0 +1,267 @@
|
|
1
|
+
module CPS
|
2
|
+
|
3
|
+
class Errors
|
4
|
+
ERRORS = {
|
5
|
+
'1000' => 'Action was successfully completed.',
|
6
|
+
'1001' => 'Action was successfully transfered to the sub system. A status update will follow soon.',
|
7
|
+
'1002' => 'Change of status received - a further status update will follow soon.',
|
8
|
+
'1003' => 'Transaction was started.',
|
9
|
+
'5000' => 'The primary DNS answered with an error.',
|
10
|
+
'5001' => 'The secondary DNS answered with an error.',
|
11
|
+
'5002' => 'Delivery of SMS failed.',
|
12
|
+
'5003' => 'The SSL order could not be started.',
|
13
|
+
'5004' => 'Registration of domain failed.',
|
14
|
+
'5005' => 'Update of domain failed.',
|
15
|
+
'5006' => 'Deletion of domain failed.',
|
16
|
+
'5007' => 'Status update of Domain failed.',
|
17
|
+
'5008' => 'Transfer of domain could not be carried out.',
|
18
|
+
'5009' => 'Transfer of domain failed.',
|
19
|
+
'5010' => 'Restoration of domain failed.',
|
20
|
+
'5011' => 'A handle could not be created by the NIC. The action failed.',
|
21
|
+
'5012' => 'A transfer-out-request was refused (NACK) because the domain is in TRANSFER-LOCK.',
|
22
|
+
'5013' => 'The migration of the domain/zone failed.',
|
23
|
+
'5014' => 'The SSL order was canceled.',
|
24
|
+
'5015' => 'Return of payment responsibility (changeover) failed.',
|
25
|
+
'5016' => 'A transfer-out-request was denied (NACK) because the assignee has refused it (CLIENT-LOCK).',
|
26
|
+
'5017' => 'Registration of hostname failed.',
|
27
|
+
'5018' => 'Update of hostname failed.',
|
28
|
+
'5019' => 'A transfer-out-request was cancelled (CANCEL).',
|
29
|
+
'6000' => 'IP is already in use.',
|
30
|
+
'6001' => 'Found an active transaction for the demanded object.',
|
31
|
+
'6002' => 'No active transaction found.',
|
32
|
+
'6003' => 'No pricing information or active duty found.',
|
33
|
+
'6004' => 'No active fees (onhold) found.',
|
34
|
+
'6005' => 'Transactions dismatch.',
|
35
|
+
'6006' => 'IP is not available.',
|
36
|
+
'6007' => 'Demanded User.',
|
37
|
+
'6008' => 'Remote command failed.',
|
38
|
+
'6009' => 'The execution of the interleaved order CREATE USER caused an error.',
|
39
|
+
'6010' => 'Demanded Contact does not exist or the active user does not own the rights to access the handle.',
|
40
|
+
'6011' => 'The execution of the interleaved order CREATE CONTACT caused an error.',
|
41
|
+
'6012' => 'The contact handle already exists.',
|
42
|
+
'6013' => 'The contact handle is in use and cannot be deleted.',
|
43
|
+
'6014' => 'The user already exists.',
|
44
|
+
'6015' => 'Notification notice-by-recall requires an URL.',
|
45
|
+
'6016' => 'Notification notice-by-email requires a target email address.',
|
46
|
+
'6017' => 'The user is in use and cannot be deleted.',
|
47
|
+
'6018' => 'The application data dismatches the registrary conditions of the responsible registry.',
|
48
|
+
'6019' => 'The option chosen for this application is invalid.',
|
49
|
+
'6020' => 'The key words are missing in the meta tags of the desired homepage.',
|
50
|
+
'6021' => 'The order could not be transfered.',
|
51
|
+
'6022' => 'You reached or overstepped your credit limit.',
|
52
|
+
'6023' => 'Sending SMS failed.',
|
53
|
+
'6024' => 'This zone already exists.',
|
54
|
+
'6025' => 'Zone limit reached.',
|
55
|
+
'6026' => 'The zone does not exist, the user has no right to access the zone or a wrong product type (attribute) was chosen.',
|
56
|
+
'6027' => 'The ACE string seems to be invalid.',
|
57
|
+
'6028' => 'The CSR seems to be wrong and could not be parsed.',
|
58
|
+
'6029' => 'The common name does not seem to be a correct domain name.',
|
59
|
+
'6030' => 'A server for matching data could not be reached (technical or authentication error).',
|
60
|
+
'6031' => 'Common name from CSR does not fit the domain in the objectfield.',
|
61
|
+
'6032' => 'Wrong certificate type chosen - does not fit to CSR/CN or SAN.',
|
62
|
+
'6033' => 'The approver emailaddress does not seem to be usable by CA.',
|
63
|
+
'6034' => 'The domain exists and is already managed by the registrar.',
|
64
|
+
'6035' => 'The domain already exists.',
|
65
|
+
'6036' => 'The domain is not administrated by the demanding user or does not exist.',
|
66
|
+
'6037' => 'The domain is not be administrated by the registrar and does not exist.',
|
67
|
+
'6038' => 'The domain already exists in the demanding account.',
|
68
|
+
'6039' => 'The AUTH-INFO is invalid.',
|
69
|
+
'6040' => 'The domain does not exist.',
|
70
|
+
'6041' => 'The domain is not administrated by the user or is located in the "Restriction Period".',
|
71
|
+
'6042' => 'The host is already subscribed.',
|
72
|
+
'6043' => 'The hostname does not base on the root domain.',
|
73
|
+
'6044' => 'The host is not be administrated by the demanding user and does not exist.',
|
74
|
+
'6045' => 'The check of your nameserver configuration caused an error.',
|
75
|
+
'6046' => 'NSENTRY details are missing.',
|
76
|
+
'6047' => 'A LATEACK can only be executed together with an UN-LOCK.',
|
77
|
+
'6048' => 'The owner-C (values::ownerc) does not match the actual domain holder.',
|
78
|
+
'6049' => 'The data of owner-C (values::ownerc) or admin-C (values::adminc) dismatch the registrary conditions of the responsible registry.',
|
79
|
+
'6050' => 'No information found for demanded object.',
|
80
|
+
'6051' => 'The domain is not administrated by the user or is located in the "Expire Threshold Period" / "Auto Renew Period".',
|
81
|
+
'6052' => 'The transaction was denied by the assignee.',
|
82
|
+
'6053' => 'Starting authorisation of transaction failed.',
|
83
|
+
'6054' => 'Too many active connections to the sub-system.',
|
84
|
+
'6055' => 'The query results in too many data records.',
|
85
|
+
'6056' => 'The object\'s data could not be synchronized with the order cache.',
|
86
|
+
'6057' => 'Domain status prohibits this operation.',
|
87
|
+
'6058' => 'Hostname status prohibits this operation.',
|
88
|
+
'6059' => 'SSL Certificate status prohibits this operation.',
|
89
|
+
'6060' => 'Access to this domain is restricted.',
|
90
|
+
'6061' => 'The zone does not exist.',
|
91
|
+
'6062' => 'The zone already exists in the demanding account.',
|
92
|
+
'6063' => 'The data of the CSR do not meet the requirements of the CA.',
|
93
|
+
'7000' => 'The customer number ist invalid.',
|
94
|
+
'7001' => 'The username is invalid.',
|
95
|
+
'7002' => 'The password is invalid.',
|
96
|
+
'7003' => 'The object goup is invalid.',
|
97
|
+
'7004' => 'The reference number is invalid.',
|
98
|
+
'7005' => 'The chosen action is invalid.',
|
99
|
+
'7006' => 'The chosen attribute is invalid.',
|
100
|
+
'7007' => 'The insert IP is invalid.',
|
101
|
+
'7008' => 'The field request_action is invalid.',
|
102
|
+
'7009' => 'The field values::servicepwd is incorrect.',
|
103
|
+
'7010' => 'The field values::street is incorrect.',
|
104
|
+
'7011' => 'The field values::billc is incorrect.',
|
105
|
+
'7012' => 'The field values::techc is incorrect.',
|
106
|
+
'7013' => 'The field values::servicepwd is incorrect.',
|
107
|
+
'7014' => 'The field values::iso_country is incorrect.',
|
108
|
+
'7015' => 'The field values::lang is incorrect.',
|
109
|
+
'7016' => 'The field values::adminc is incorrect.',
|
110
|
+
'7017' => 'The field values::super_user is incorrect.',
|
111
|
+
'7018' => 'The field values::postal is incorrect.',
|
112
|
+
'7019' => 'The field values::city is incorrect.',
|
113
|
+
'7020' => 'The field first name of admin-c is invalid.',
|
114
|
+
'7021' => 'The field last name of admin-c is invalid.',
|
115
|
+
'7022' => 'The field first name of bill-c is invalid.',
|
116
|
+
'7023' => 'The field first name of tech-c is invalid.',
|
117
|
+
'7024' => 'The field last name of bill-c is invalid.',
|
118
|
+
'7025' => 'The field last name of tech-c is invalid.',
|
119
|
+
'7026' => 'The field values::user is invalid.',
|
120
|
+
'7027' => 'The time format of field values::begin is invalid.',
|
121
|
+
'7028' => 'The time format of field values::end is invalid.',
|
122
|
+
'7029' => 'The field values::firstname is incorrect.',
|
123
|
+
'7030' => 'The field values::lastname is incorrect.',
|
124
|
+
'7031' => 'The field values::orgname is incorrect.',
|
125
|
+
'7032' => 'The field values::street is incorrect.',
|
126
|
+
'7033' => 'The field values::postal is incorrect.',
|
127
|
+
'7034' => 'The field values::city is incorrect.',
|
128
|
+
'7035' => 'The field values::state is incorrect.',
|
129
|
+
'7036' => 'The field values::iso_country is incorrect.',
|
130
|
+
'7037' => 'The field values::phone is incorrect.',
|
131
|
+
'7038' => 'The field values::fax is incorrect.',
|
132
|
+
'7039' => 'The field values::email is incorrect.',
|
133
|
+
'7040' => 'The chosen user status is invalid.',
|
134
|
+
'7041' => 'The chosen password is invalid.',
|
135
|
+
'7042' => 'The chosen option for the notification notice-by-poll is invalid.',
|
136
|
+
'7043' => 'The chosen option for the notification notice-by-recall is invalid.',
|
137
|
+
'7044' => 'The chosen option for the notification notice-by-email is invalid.',
|
138
|
+
'7045' => 'The chosen recall URL is invalid.',
|
139
|
+
'7046' => 'The sender email address is invalid.',
|
140
|
+
'7047' => 'The receiver email address is invalid.',
|
141
|
+
'7048' => 'The field values::object is incorrect.',
|
142
|
+
'7049' => 'The user rights for the range account are invalid.',
|
143
|
+
'7050' => 'The user rights for the range user are invalid.',
|
144
|
+
'7051' => 'The user rights for the range contact are invalid.',
|
145
|
+
'7052' => 'The user rights for the range domain are invalid.',
|
146
|
+
'7053' => 'The user rights for the range DNS are invalid.',
|
147
|
+
'7054' => 'The user rights for the range SSL-Cert are invalid.',
|
148
|
+
'7055' => 'The user rights for the range SMS are invalid.',
|
149
|
+
'7056' => 'The user rights for the range submit are invalid.',
|
150
|
+
'7057' => 'The chosen contact is invalid.',
|
151
|
+
'7058' => 'Der user name in the object field is invalid.',
|
152
|
+
'7059' => 'The chosen domain name is invalid.',
|
153
|
+
'7060' => 'The field values::group is invalid.',
|
154
|
+
'7061' => 'The field values::account_invoice_num is invalid.',
|
155
|
+
'7062' => 'The field values::view is invalid.',
|
156
|
+
'7063' => 'The target number in the object field is invalid.',
|
157
|
+
'7064' => 'The field enable_flash can only be yes or no.',
|
158
|
+
'7065' => 'The field sender_id can only consist of 11 alpha numeric characters or 16 numeric characters.',
|
159
|
+
'7066' => 'The field message_text is incorrect.',
|
160
|
+
'7067' => 'One of the NS record fiels is invalid.',
|
161
|
+
'7068' => 'The domain in the object field is invalid.',
|
162
|
+
'7069' => 'One of the MX record fields is invalid.',
|
163
|
+
'7070' => 'One of the TXT records is invalid.',
|
164
|
+
'7071' => 'One of the CNAME record fields is invalid.',
|
165
|
+
'7072' => 'One of the A record fields is incorrect.',
|
166
|
+
'7073' => 'The master IP is invalid.',
|
167
|
+
'7074' => 'The field values::domain is invalid.',
|
168
|
+
'7075' => 'The field vaules::native_domain is invalid.',
|
169
|
+
'7076' => 'The CSR is incorrect.',
|
170
|
+
'7077' => 'The approver email is invalid.',
|
171
|
+
'7078' => 'The certificate type is invalid.',
|
172
|
+
'7079' => 'The field values::common_name is invalid.',
|
173
|
+
'7080' => 'The field values::status is invalid.',
|
174
|
+
'7081' => 'The field values::expire_end is invalid.',
|
175
|
+
'7082' => 'The field values::expire_begin is invalid.',
|
176
|
+
'7083' => 'The field values::sslcert_type is invalid.',
|
177
|
+
'7084' => 'The field values::object_id is invalid.',
|
178
|
+
'7085' => 'The desired action / the demanded product are not available.',
|
179
|
+
'7086' => 'One of the DNS host names is invalid.',
|
180
|
+
'7087' => 'One of the DNS host IPs is invalid.',
|
181
|
+
'7088' => 'The field values::ownerc is incorrect.',
|
182
|
+
'7089' => 'The field values::ownerc::lastname is incorrect.',
|
183
|
+
'7090' => 'The field values::ownerc::firstname is incorrect.',
|
184
|
+
'7091' => 'The field values::active is incorrect.',
|
185
|
+
'7092' => 'The field values::auth_info is incorrect.',
|
186
|
+
'7093' => 'The host name in the Object field is invalid.',
|
187
|
+
'7094' => 'The root domain (values::parent_domain) is invalid.',
|
188
|
+
'7095' => 'The IP (values::ip) is invalid.',
|
189
|
+
'7096' => 'The field values::auto_renew is invalid.',
|
190
|
+
'7097' => 'The field values::transfer_lock is invalid.',
|
191
|
+
'7098' => 'The field values::hostname is invalid.',
|
192
|
+
'7099' => 'One of the NSENTRY fields is invalid.',
|
193
|
+
'7100' => 'The option values::denic_lateack is incorrect.',
|
194
|
+
'7101' => 'The AUTH-CODE is invalid.',
|
195
|
+
'7102' => 'Error in the additional declaration REG-number.',
|
196
|
+
'7103' => 'Error the additional declaration REG-type.',
|
197
|
+
'7104' => 'Error the additional declaration REG-date.',
|
198
|
+
'7105' => 'Error the additional declaration REG-location.',
|
199
|
+
'7106' => 'Error the additional declaration REG-AUTH.',
|
200
|
+
'7107' => 'The field values::attribute is invalid.',
|
201
|
+
'7108' => 'The field values::action is invalid.',
|
202
|
+
'7109' => 'The structure of your XML order is incorrect.',
|
203
|
+
'7110' => 'The field values::privacy_rule is incorrect.',
|
204
|
+
'7111' => 'The field values::publicc is incorrect.',
|
205
|
+
'7112' => 'The field last name of public-c is invalid.',
|
206
|
+
'7113' => 'The field first name of public-c is invalid.',
|
207
|
+
'7114' => 'The field values::contact_type is incorrect.',
|
208
|
+
'7115' => 'The chosen report source (object group) is incorrect.',
|
209
|
+
'7116' => 'The output format is invalid.',
|
210
|
+
'7117' => 'One of the AAAA record fields is incorrect.',
|
211
|
+
'7118' => 'The field values::delegation is invalid.',
|
212
|
+
'7119' => 'The field values::ttl is invalid.',
|
213
|
+
'8000' => 'This IP is not authorised for accessing our system.',
|
214
|
+
'8001' => 'The IP could not be auhorised by the used account.',
|
215
|
+
'8002' => 'The account could not be found.',
|
216
|
+
'8003' => 'The user could not be found.',
|
217
|
+
'8004' => 'Authentication failed. Please check the password.',
|
218
|
+
'8005' => 'Account is inactive.',
|
219
|
+
'8006' => 'User is inactive.',
|
220
|
+
'8007' => 'User privileges forbid this action.',
|
221
|
+
'8008' => 'Chosen module or duty is under maintenance.',
|
222
|
+
'8009' => 'Too many active connections for this resource.',
|
223
|
+
'8010' => 'User temporarily blocked.',
|
224
|
+
'9000' => 'System temporary not available - System locked.',
|
225
|
+
'9001' => 'Critical error by ROLLBACK to DBMS while writing transaction.',
|
226
|
+
'9002' => 'Critical error by ROLLBACK after invalid COMMIT to DBMS after a transaction.',
|
227
|
+
'9003' => 'RegEx table access violation.',
|
228
|
+
'9004' => 'IP table access violation.',
|
229
|
+
'9005' => 'Account table access violation.',
|
230
|
+
'9006' => 'User table access violation.',
|
231
|
+
'9007' => 'Critical Error by ROLLBACK to DBMS while transaction.',
|
232
|
+
'9008' => 'Module table access violation.',
|
233
|
+
'9009' => 'No active module for machining available or rather error while loading module.',
|
234
|
+
'9010' => 'Transaction table access violation.',
|
235
|
+
'9011' => 'Pricing table access violation.',
|
236
|
+
'9012' => 'Critical Error while reading the auto increment value.',
|
237
|
+
'9013' => 'Debug breakpoint. Please try again later.',
|
238
|
+
'9014' => 'SQL writing transaction failed.',
|
239
|
+
'9015' => 'COMMIT failed. Reverse execution follows.',
|
240
|
+
'9016' => 'Error on SQL prepare order.',
|
241
|
+
'9017' => 'Active bill table access violation.',
|
242
|
+
'9018' => 'Contact table access violation.',
|
243
|
+
'9019' => 'Access table access violation.',
|
244
|
+
'9020' => 'Bill log table access violation.',
|
245
|
+
'9021' => 'Account balance table access violation.',
|
246
|
+
'9022' => 'Account billing details table access violation.',
|
247
|
+
'9023' => 'Service table access violation',
|
248
|
+
'9024' => 'Active transaction table access violation.',
|
249
|
+
'9025' => 'DNS zones table access violation.',
|
250
|
+
'9026' => 'Service table access violation.',
|
251
|
+
'9027' => 'SSL-Certs table access violation.',
|
252
|
+
'9028' => 'Domain names table access violation.',
|
253
|
+
'9029' => 'Host name table access violation.',
|
254
|
+
'9030' => 'Domain additional Value access violation.',
|
255
|
+
'9031' => 'Active-Transactions-Approvals table access violation.',
|
256
|
+
'9032' => 'Active-Sessions table access violation.',
|
257
|
+
'9033' => 'Active-Transactions-Email-Crontab table access violation.',
|
258
|
+
'9034' => 'Footnotes access violation.',
|
259
|
+
'9035' => 'Object cache access violation.',
|
260
|
+
'9036' => 'Contact reference table access violation.',
|
261
|
+
'9037' => 'Restricted domains access violation.',
|
262
|
+
'9038' => 'Credit data access violation.',
|
263
|
+
'9039' => 'Order stack table access violation.',
|
264
|
+
'9040' => 'Exchange rates table access violation.'
|
265
|
+
}
|
266
|
+
end
|
267
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module CPS
|
2
|
+
|
3
|
+
NAME = "CPS-CLIENT"
|
4
|
+
GEM = "cps-client"
|
5
|
+
AUTHORS = ["jfqd <jfqd@blun.org>"]
|
6
|
+
|
7
|
+
module Version
|
8
|
+
MAJOR = 0
|
9
|
+
MINOR = 0
|
10
|
+
PATCH = 2
|
11
|
+
BUILD = nil
|
12
|
+
|
13
|
+
STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join(".")
|
14
|
+
end
|
15
|
+
|
16
|
+
VERSION = CPS::Version::STRING
|
17
|
+
end
|
data/lib/erb/base.erb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<request>
|
3
|
+
<auth>
|
4
|
+
<cid><%= @cid.convert_to_iso_8859_1 %></cid>
|
5
|
+
<user><%= @uid.convert_to_iso_8859_1 %></user>
|
6
|
+
<pwd><%= @pwd.convert_to_iso_8859_1 %></pwd>
|
7
|
+
</auth>
|
8
|
+
<transaction>
|
9
|
+
<%= @xml %>
|
10
|
+
</transaction>
|
11
|
+
</request>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<group>contact</group>
|
2
|
+
<action>create</action>
|
3
|
+
<attribute>contact</attribute>
|
4
|
+
<object><%= @object.convert_to_iso_8859_1 %></object>
|
5
|
+
<values>
|
6
|
+
<firstname><%= @firstname.convert_to_iso_8859_1 %></firstname>
|
7
|
+
<lastname><%= @lastname.convert_to_iso_8859_1 %></lastname>
|
8
|
+
<orgname><%= @orgname.convert_to_iso_8859_1 %></orgname>
|
9
|
+
<street><%= @street.convert_to_iso_8859_1 %></street>
|
10
|
+
<postal><%= @postal.convert_to_iso_8859_1 %></postal>
|
11
|
+
<city><%= @city.convert_to_iso_8859_1 %></city>
|
12
|
+
<state><%= @state.convert_to_iso_8859_1 %></state>
|
13
|
+
<iso_country><%= @iso_country.convert_to_iso_8859_1 %></iso_country>
|
14
|
+
<phone><%= @phone.convert_to_iso_8859_1 %></phone>
|
15
|
+
<fax><%= @fax.convert_to_iso_8859_1 %></fax>
|
16
|
+
<email><%= @email.convert_to_iso_8859_1 %></email>
|
17
|
+
<privacy_rule><%= @privacy_rule.convert_to_iso_8859_1 %></privacy_rule>
|
18
|
+
<contact_type><%= @contact_type.convert_to_iso_8859_1 %></contact_type>
|
19
|
+
</values>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<firstname><%= @firstname.convert_to_iso_8859_1 %></firstname>
|
2
|
+
<lastname><%= @lastname.convert_to_iso_8859_1 %></lastname>
|
3
|
+
<orgname><%= @orgname.convert_to_iso_8859_1 %></orgname>
|
4
|
+
<street><%= @street.convert_to_iso_8859_1 %></street>
|
5
|
+
<postal><%= @postal.convert_to_iso_8859_1 %></postal>
|
6
|
+
<city><%= @city.convert_to_iso_8859_1 %></city>
|
7
|
+
<state><%= @state.convert_to_iso_8859_1 %></state>
|
8
|
+
<iso_country><%= @iso_country.convert_to_iso_8859_1 %></iso_country>
|
9
|
+
<phone><%= @phone.convert_to_iso_8859_1 %></phone>
|
10
|
+
<fax><%= @fax.convert_to_iso_8859_1 %></fax>
|
11
|
+
<email><%= @email.convert_to_iso_8859_1 %></email>
|
12
|
+
<privacy_rule><%= @privacy_rule.convert_to_iso_8859_1 %></privacy_rule>
|
13
|
+
<contact_type><%= @contact_type.convert_to_iso_8859_1 %></contact_type>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<group>domain</group>
|
2
|
+
<action>create</action>
|
3
|
+
<attribute>domain</attribute>
|
4
|
+
<object><%= @domain.convert_to_iso_8859_1 %></object>
|
5
|
+
<values>
|
6
|
+
<adminc><%= @adminc.convert_to_iso_8859_1 %></adminc>
|
7
|
+
<techc><%= @techc.convert_to_iso_8859_1 %></techc>
|
8
|
+
<billc><%= @billc.convert_to_iso_8859_1 %></billc>
|
9
|
+
<ownerc><%= @ownerc.convert_to_iso_8859_1 %></ownerc>
|
10
|
+
<dns>
|
11
|
+
<hostname><%= @ns1.convert_to_iso_8859_1 %></hostname>
|
12
|
+
</dns>
|
13
|
+
<dns>
|
14
|
+
<hostname><%= @ns2.convert_to_iso_8859_1 %></hostname>
|
15
|
+
</dns>
|
16
|
+
</values>
|
data/test.rb
ADDED
@@ -0,0 +1,131 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/lib/cps-client.rb'
|
4
|
+
|
5
|
+
server = CPS::Client.new(
|
6
|
+
:cid => 'your-cid',
|
7
|
+
:uid => 'your-uid',
|
8
|
+
:pwd => 'your-pwd',
|
9
|
+
:production => false
|
10
|
+
)
|
11
|
+
|
12
|
+
client_contact = CPS::Contact.new(
|
13
|
+
:object => 'qd1234',
|
14
|
+
:firstname => 'Peter',
|
15
|
+
:lastname => 'Pan',
|
16
|
+
:street => 'Brunnengasse 34',
|
17
|
+
:postal => '60127',
|
18
|
+
:city => 'Frankfurt am Main',
|
19
|
+
:state => 'Hessen',
|
20
|
+
:iso_country => 'DE',
|
21
|
+
:phone => '+49 694711',
|
22
|
+
:fax => '+49 694711',
|
23
|
+
:email => 'peter.pan@example.com'
|
24
|
+
)
|
25
|
+
|
26
|
+
company_contact = CPS::Contact.new(
|
27
|
+
:object => 'qd0001',
|
28
|
+
:firstname => 'Paulär',
|
29
|
+
:lastname => 'Panter',
|
30
|
+
:street => 'Brunnengasse 1',
|
31
|
+
:postal => '60127',
|
32
|
+
:city => 'Frankfurt am Main',
|
33
|
+
:state => 'Hessen',
|
34
|
+
:iso_country => 'DE',
|
35
|
+
:phone => '+49 69471123',
|
36
|
+
:fax => '+49 69471124',
|
37
|
+
:email => 'paulaer.panter@example.com'
|
38
|
+
)
|
39
|
+
|
40
|
+
domain = CPS::Domain.new(
|
41
|
+
:domain => 'example-domain-123456.com',
|
42
|
+
:adminc => 'QD1234',
|
43
|
+
:techc => 'QD0001',
|
44
|
+
:billc => 'QD0001',
|
45
|
+
:ownerc => 'QD1234',
|
46
|
+
:ns1 => 'my1.dns.com',
|
47
|
+
:ns2 => 'my2.dns.com'
|
48
|
+
)
|
49
|
+
|
50
|
+
unless server.query(client_contact.info) # return true if contact handle exists
|
51
|
+
# Create client contact handle
|
52
|
+
if server.query(client_contact.create)
|
53
|
+
puts "Contact created: #{server.result_code}: #{server.result_message}"
|
54
|
+
else
|
55
|
+
puts "Error: #{server.data}"
|
56
|
+
puts "#{server.result_code}: #{server.result_message} #{server.request}"
|
57
|
+
exit 1
|
58
|
+
end
|
59
|
+
else
|
60
|
+
puts "Client contact handle exists: #{client_contact.object}"
|
61
|
+
end
|
62
|
+
|
63
|
+
unless server.query(company_contact.info) # return true if contact handle exists
|
64
|
+
# Create company contact handle
|
65
|
+
if server.query(company_contact.create)
|
66
|
+
puts "Contact created: #{server.result_code}: #{server.result_message}"
|
67
|
+
else
|
68
|
+
puts "Error: #{server.data}"
|
69
|
+
puts "#{server.result_code}: #{server.result_message} #{server.request}"
|
70
|
+
exit 1
|
71
|
+
end
|
72
|
+
else
|
73
|
+
puts "Company contact handle exists: #{company_contact.object}"
|
74
|
+
end
|
75
|
+
|
76
|
+
# if server.query(client_contact.info)
|
77
|
+
# puts "Contact info: #{server.data}"
|
78
|
+
# puts "#{server.result_code}: #{server.result_message}"
|
79
|
+
# else
|
80
|
+
# puts "Error: #{server.data}"
|
81
|
+
# puts "#{server.result_code}: #{server.result_message} #{server.request}"
|
82
|
+
# exit 1
|
83
|
+
# end
|
84
|
+
|
85
|
+
# create domain
|
86
|
+
unless server.query(domain.info) # return true if domain is registered
|
87
|
+
if server.query(domain.create)
|
88
|
+
puts "Domain created: #{server.result_code}: #{server.result_message}"
|
89
|
+
else
|
90
|
+
puts "Error: #{server.data}"
|
91
|
+
puts "#{server.result_code}: #{server.result_message} #{server.request}"
|
92
|
+
exit 1
|
93
|
+
end
|
94
|
+
else
|
95
|
+
puts "Domain exists: #{domain.domain}"
|
96
|
+
end
|
97
|
+
|
98
|
+
# if server.query(domain.info)
|
99
|
+
# puts "Domain info: #{server.data}"
|
100
|
+
# puts "#{server.result_code}: #{server.result_message}"
|
101
|
+
# else
|
102
|
+
# puts "Error: #{server.data}"
|
103
|
+
# puts "#{server.result_code}: #{server.result_message} #{server.request}"
|
104
|
+
# exit 1
|
105
|
+
# end
|
106
|
+
|
107
|
+
if server.query(domain.delete)
|
108
|
+
puts "Domain delete: #{server.result_code}: #{server.result_message}"
|
109
|
+
else
|
110
|
+
puts "Error: #{server.data}"
|
111
|
+
puts "#{server.result_code}: #{server.result_message} #{server.request}"
|
112
|
+
exit 1
|
113
|
+
end
|
114
|
+
|
115
|
+
if server.query(client_contact.delete)
|
116
|
+
puts "Contact deleted: #{server.result_code}: #{server.result_message}"
|
117
|
+
else
|
118
|
+
puts "Error: #{server.data}"
|
119
|
+
puts "#{server.result_code}: #{server.result_message}"
|
120
|
+
exit 1
|
121
|
+
end
|
122
|
+
|
123
|
+
if server.query(company_contact.delete)
|
124
|
+
puts "Contact deleted: #{server.result_code}: #{server.result_message}"
|
125
|
+
else
|
126
|
+
puts "Error: #{server.data}"
|
127
|
+
puts "#{server.result_code}: #{server.result_message}"
|
128
|
+
exit 1
|
129
|
+
end
|
130
|
+
|
131
|
+
exit 0
|
metadata
ADDED
@@ -0,0 +1,106 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cps-client
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- jfqd
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-01-05 00:00:00 +01:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: always_verify_ssl_certificates
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 23
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
- 2
|
33
|
+
- 0
|
34
|
+
version: 0.2.0
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
description: ruby api for the arp-client of cps-datensysteme.de
|
38
|
+
email:
|
39
|
+
- jfqd@blun.org
|
40
|
+
executables: []
|
41
|
+
|
42
|
+
extensions: []
|
43
|
+
|
44
|
+
extra_rdoc_files: []
|
45
|
+
|
46
|
+
files:
|
47
|
+
- .gitignore
|
48
|
+
- Gemfile
|
49
|
+
- Gemfile.lock
|
50
|
+
- Rakefile
|
51
|
+
- Readme.textile
|
52
|
+
- cps-client.gemspec
|
53
|
+
- lib/core_ext.rb
|
54
|
+
- lib/cps-client.rb
|
55
|
+
- lib/cps-client/client.rb
|
56
|
+
- lib/cps-client/config.rb
|
57
|
+
- lib/cps-client/contact.rb
|
58
|
+
- lib/cps-client/domain.rb
|
59
|
+
- lib/cps-client/erb_helper.rb
|
60
|
+
- lib/cps-client/errors.rb
|
61
|
+
- lib/cps-client/version.rb
|
62
|
+
- lib/erb/base.erb
|
63
|
+
- lib/erb/contact_create.erb
|
64
|
+
- lib/erb/contact_delete.erb
|
65
|
+
- lib/erb/contact_domain.erb
|
66
|
+
- lib/erb/contact_info.erb
|
67
|
+
- lib/erb/domain_create.erb
|
68
|
+
- lib/erb/domain_delete.erb
|
69
|
+
- lib/erb/domain_info.erb
|
70
|
+
- test.rb
|
71
|
+
has_rdoc: true
|
72
|
+
homepage: https://github.com/jfqd/cps-client
|
73
|
+
licenses: []
|
74
|
+
|
75
|
+
post_install_message:
|
76
|
+
rdoc_options: []
|
77
|
+
|
78
|
+
require_paths:
|
79
|
+
- lib
|
80
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
hash: 3
|
86
|
+
segments:
|
87
|
+
- 0
|
88
|
+
version: "0"
|
89
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
91
|
+
requirements:
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
hash: 3
|
95
|
+
segments:
|
96
|
+
- 0
|
97
|
+
version: "0"
|
98
|
+
requirements: []
|
99
|
+
|
100
|
+
rubyforge_project: cps-client
|
101
|
+
rubygems_version: 1.3.7
|
102
|
+
signing_key:
|
103
|
+
specification_version: 3
|
104
|
+
summary: ruby api for the arp-client of cps-datensysteme.de
|
105
|
+
test_files: []
|
106
|
+
|