namecheap 0.2.0 → 0.3.1

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/lib/namecheap/ssl.rb CHANGED
@@ -1,60 +1,70 @@
1
1
  module Namecheap
2
2
  class Ssl < Api
3
+ # Activates a newly purchased SSL certificate.
4
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:ssl:activate
3
5
  def activate(id, options = {})
4
- args = options.clone
5
- args['CertificateID'] = id
6
- api_call('namecheap.ssl.activate', args)
6
+ options = {CertificateID: id}.merge(options)
7
+ get "ssl.activate", options
7
8
  end
8
9
 
10
+ # Retrieves information about the requested SSL certificate.
11
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:ssl:getinfo
9
12
  def get_info(id, options = {})
10
- args = options.clone
11
- args['CertificateID'] = id
12
- api_call('namecheap.ssl.getInfo', args)
13
+ options = {CertificateID: id}.merge(options)
14
+ get "ssl.getInfo", options
13
15
  end
14
16
 
17
+ # Parsers the CSR.
18
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:ssl:parsecsr
15
19
  def parse_csr(csr, options = {})
16
- args = options.clone
17
- args['csr'] = csr
18
- api_call('namecheap.ssl.parseCSR', args)
20
+ options = {csr: csr}.merge(options)
21
+ get "ssl.parseCSR", options
19
22
  end
20
23
 
24
+ # Gets approver email list for the requested domain.
25
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:ssl:getapproveremaillist
21
26
  def get_approver_email_list(domain, options = {})
22
- args = options.clone
23
- args['DomainName'] = domain
24
- api_call('namecheap.ssl.getApproverEmailList', args)
27
+ options = {DomainName: domain}.merge(options)
28
+ get "ssl.getApproverEmailList", options
25
29
  end
26
30
 
31
+ # Returns a list of SSL certificates for a particular user.
32
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:ssl:getlist
27
33
  def get_list(options = {})
28
- args = options.clone
29
- api_call('namecheap.ssl.getList', args)
34
+ get "ssl.getList", options
30
35
  end
31
36
 
37
+ # Creates a new SSL certificate.
38
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:ssl:create
32
39
  def create(options = {})
33
- args = options.clone
34
- api_call('namecheap.ssl.create', args)
40
+ get "ssl.create", options
35
41
  end
36
42
 
43
+ # Renews an SSL certificate.
44
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:ssl:renew
37
45
  def renew(options = {})
38
- args = options.clone
39
- api_call('namecheap.ssl.renew', args)
46
+ get "ssl.renew", options
40
47
  end
41
48
 
49
+ # Resends the approver email.
50
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:ssl:resendapproveremail
42
51
  def resend_approver_email(id, options = {})
43
- args = options.clone
44
- args['CertificateID'] = id
45
- api_call('namecheap.ssl.resendApproverEmail', args)
52
+ options = {CertificateID: id}.merge(options)
53
+ get "ssl.resendApproverEmail", options
46
54
  end
47
55
 
56
+ # Resends the fulfilment email containing the certificate.
57
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:ssl:resendfulfillmentemail
48
58
  def resend_fulfillment_email(id, options = {})
49
- args = options.clone
50
- args['CertificateID'] = id
51
- api_call('namecheap.ssl.resendfulfillmentemail', args)
59
+ options = {CertificateID: id}.merge(options)
60
+ get "ssl.resendfulfillmentemail", options
52
61
  end
53
62
 
63
+ # Reissues an SSL certificate.
64
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:ssl:reissue
54
65
  def reissue(id, options = {})
55
- args = options.clone
56
- args['CertificateID'] = id
57
- api_call('namecheap.ssl.reissue', args)
66
+ options = {CertificateID: id}.merge(options)
67
+ get "ssl.reissue", options
58
68
  end
59
69
  end
60
70
  end
@@ -1,26 +1,30 @@
1
1
  module Namecheap
2
2
  class Transfers < Api
3
+ # Transfers a domain to Namecheap.
4
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:domains.transfer:create
3
5
  def create(domain, options = {})
4
- args = options.clone
5
- args['DomainName'] = domain
6
- api_call('namecheap.domains.transfer.create', args)
6
+ options = {DomainName: domain}.merge(options)
7
+ get "domains.transfer.create", options
7
8
  end
8
9
 
10
+ # Gets the status of a particular transfer.
11
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:domains.transfer:getstatus
9
12
  def get_status(id, options = {})
10
- args = options.clone
11
- args['TransferID'] = id
12
- api_call('namecheap.domains.transfer.getStatus', args)
13
+ options = {TransferID: id}.merge(options)
14
+ get "domains.transfer.getStatus", options
13
15
  end
14
16
 
17
+ # Updates the status of a particular transfer.
18
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:domains.transfer:updatestatus
15
19
  def update_status(id, options = {})
16
- args = options.clone
17
- args['TransferID'] = id
18
- api_call('namecheap.domains.transfer.updateStatus', args)
20
+ options = {TransferID: id}.merge(options)
21
+ get "domains.transfer.updateStatus", options
19
22
  end
20
-
23
+
24
+ # Gets the list of domain transfers.
25
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:domains.transfer:getlist
21
26
  def get_list(options = {})
22
- args = options.clone
23
- api_call('namecheap.domains.transfer.getList', args)
27
+ get "domains.transfer.getList", options
24
28
  end
25
29
  end
26
30
  end
@@ -1,44 +1,58 @@
1
1
  module Namecheap
2
2
  class Users < Api
3
+ # Creates a new user account at NameCheap.
4
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:users:create
5
+ def create(options = {})
6
+ get "users.create", options
7
+ end
8
+
9
+ # Returns pricing information for a requested product type.
10
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:users:getpricing
3
11
  def get_pricing(options = {})
4
- args = options.clone
5
- api_call('namecheap.users.getPricing', args)
12
+ get "users.getPricing", options
6
13
  end
7
14
 
15
+ # Gets information about fund in the user's account.
16
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:users:getbalances
8
17
  def get_balances(options = {})
9
- args = options.clone
10
- api_call('namecheap.users.getBalances', args)
18
+ get "users.getBalances", options
11
19
  end
12
20
 
21
+ # Changes the password for a user.
22
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:users:changepassword
13
23
  def change_password(options = {})
14
- args = options.clone
15
- api_call('namecheap.users.changePassword', args)
24
+ get "users.changePassword", options
16
25
  end
17
26
 
27
+ # Updates user account information for the particular user.
28
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:users:update
18
29
  def update(options = {})
19
- args = options.clone
20
- api_call('namecheap.users.update', args)
30
+ get "users.update", options
21
31
  end
22
32
 
33
+ # Allows you to add funds to a user account.
34
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:users:createaddfundsrequest
23
35
  def create_add_funds_request(options = {})
24
- args = options.clone
25
- api_call('namecheap.users.createaddfundsrequest', args)
36
+ get "users.createaddfundsrequest", options
26
37
  end
27
38
 
39
+ # Gets the status of add funds request.
40
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:users:getaddfundsstatus
28
41
  def get_add_funds_status(id, options = {})
29
- args = options.clone
30
- args['TokenId'] = id
31
- api_call('namecheap.users.getAddFundsStatus', args)
42
+ options = {TokenId: id}.merge(options)
43
+ get "users.getAddFundsStatus", options
32
44
  end
33
45
 
46
+ # Validates the username and password of user accounts you have created.
47
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:users:login
34
48
  def login(options = {})
35
- args = options.clone
36
- api_call('namecheap.users.login', args)
49
+ get "users.login", options
37
50
  end
38
51
 
52
+ # Sends a reset password link to user.
53
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:users:resetpassword
39
54
  def reset_password(options = {})
40
- args = options.clone
41
- api_call('namecheap.users.resetPassword', args)
55
+ get "users.resetPassword", options
42
56
  end
43
57
  end
44
58
  end
@@ -1,3 +1,3 @@
1
1
  module Namecheap
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.1"
3
3
  end
@@ -1,40 +1,47 @@
1
1
  module Namecheap
2
+ # standard:disable Naming/ClassAndModuleCamelCase
2
3
  class Whois_Guard < Api
4
+ # Allots WhoisGuard privacy protection.
5
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:whoisguard:allot
3
6
  def allot(id, domain, options = {})
4
- args = options.clone
5
- args['WhoisguardId'] = id
6
- args['DomainName'] = domain
7
- api_call('namecheap.whoisguard.allot', args)
7
+ options = {WhoisguardId: id, DomainName: domain}.merge(options)
8
+ get "whoisguard.allot", options
8
9
  end
9
10
 
11
+ # Discards the WhoisGuard.
12
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:whoisguard:discard
10
13
  def discard(id, options = {})
11
- args = options.clone
12
- args['WhoisguardId'] = id
13
- api_call('namecheap.whoisguard.discard', args)
14
+ options = {WhoisguardId: id}.merge(options)
15
+ get "whoisguard.discard", options
14
16
  end
15
17
 
18
+ # Unallots WhoisGuard privacy protection for the WhoisguardID.
19
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:whoisguard:unallot
16
20
  def unallot(id, options = {})
17
- args = options.clone
18
- args['WhoisguardId'] = id
19
- api_call('namecheap.whoisguard.unallot', args)
21
+ options = {WhoisguardId: id}.merge(options)
22
+ get "whoisguard.unallot", options
20
23
  end
21
24
 
25
+ # Disables WhoisGuard privacy protection for the WhoisguardID.
26
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:whoisguard:disable
22
27
  def disable(id, options = {})
23
- args = options.clone
24
- args['WhoisguardId'] = id
25
- api_call('namecheap.whoisguard.disable', args)
28
+ options = {WhoisguardId: id}.merge(options)
29
+ get "whoisguard.disable", options
26
30
  end
27
31
 
32
+ # Enables WhoisGuard privacy protection for the WhoisguardID.
33
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:whoisguard:enable
28
34
  def enable(id, options = {})
29
- args = options.clone
30
- args['WhoisguardId'] = id
31
- api_call('namecheap.whoisguard.enable', args)
35
+ options = {WhoisguardId: id}.merge(options)
36
+ get "whoisguard.enable", options
32
37
  end
33
38
 
39
+ # Changes WhoisGuard email address.
40
+ # @see http://developer.namecheap.com/docs/doku.php?id=api-reference:whoisguard:changeemailaddress
34
41
  def change_email_address(id, options = {})
35
- args = options.clone
36
- args['WhoisguardId'] = id
37
- api_call('namecheap.whoisguard.changeemailaddress', args)
42
+ options = {WhoisguardId: id}.merge(options)
43
+ get "whoisguard.changeemailaddress", options
38
44
  end
39
45
  end
46
+ # standard:enable Naming/ClassAndModuleCamelCase
40
47
  end
data/lib/namecheap.rb CHANGED
@@ -1,12 +1,16 @@
1
- require 'httparty'
2
- require 'monkey_patch'
3
- require 'pp'
4
-
5
- $LOAD_PATH.unshift("#{File.dirname(__FILE__)}/namecheap")
6
- Dir.glob("#{File.dirname(__FILE__)}/namecheap/*.rb") { |lib| require File.basename(lib, '.*') }
1
+ require "httparty"
2
+ require "namecheap/version"
3
+ require "namecheap/api"
4
+ require "namecheap/config"
5
+ require "namecheap/domains"
6
+ require "namecheap/dns"
7
+ require "namecheap/ns"
8
+ require "namecheap/ssl"
9
+ require "namecheap/transfers"
10
+ require "namecheap/users"
11
+ require "namecheap/whois_guard"
7
12
 
8
13
  module Namecheap
9
-
10
14
  extend self
11
15
 
12
16
  # Sets the Namecheap configuration options. Best used by passing a block.
@@ -21,16 +25,14 @@ module Namecheap
21
25
  def configure
22
26
  block_given? ? yield(Config) : Config
23
27
  end
24
- alias :config :configure
25
-
26
- # Take all the public instance methods from the Config singleton and allow
27
- # them to be accessed through the Namecheap module directly.
28
- #
29
- # @example Delegate the configuration methods.
30
- # Namecheap.key = 'newkey'
31
- delegate *(Config.public_instance_methods(false) << { :to => Config })
28
+ alias_method :config, :configure
32
29
 
33
- attr_accessor :domains
30
+ attr_accessor :domains, :dns, :ns, :transfers, :ssl, :users, :whois_guard
34
31
  self.domains = Namecheap::Domains.new
35
-
32
+ self.dns = Namecheap::Dns.new
33
+ self.ns = Namecheap::Ns.new
34
+ self.transfers = Namecheap::Transfers.new
35
+ self.ssl = Namecheap::Ssl.new
36
+ self.users = Namecheap::Users.new
37
+ self.whois_guard = Namecheap::Whois_Guard.new
36
38
  end
metadata CHANGED
@@ -1,67 +1,122 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: namecheap
3
- version: !ruby/object:Gem::Version
4
- hash: 23
5
- prerelease:
6
- segments:
7
- - 0
8
- - 2
9
- - 0
10
- version: 0.2.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.1
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - parasquid
14
- autorequire:
8
+ autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2013-06-14 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: rspec
11
+ date: 2026-07-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '7.1'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '9'
23
+ type: :runtime
22
24
  prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
26
27
  - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
32
- type: :development
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
28
+ - !ruby/object:Gem::Version
29
+ version: '7.1'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '9'
33
+ - !ruby/object:Gem::Dependency
35
34
  name: httparty
36
- prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
38
- none: false
39
- requirements:
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
40
37
  - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.22'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '1'
46
43
  type: :runtime
47
- version_requirements: *id002
48
- description: Ruby wrapper for the Namecheap API
49
- email:
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0.22'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '1'
53
+ - !ruby/object:Gem::Dependency
54
+ name: rake
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '13.0'
60
+ type: :development
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '13.0'
67
+ - !ruby/object:Gem::Dependency
68
+ name: rspec
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '3.13'
74
+ type: :development
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '3.13'
81
+ - !ruby/object:Gem::Dependency
82
+ name: standard
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '1.55'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '1.55'
95
+ - !ruby/object:Gem::Dependency
96
+ name: webmock
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '3.0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: '3.0'
109
+ description: A small Ruby wrapper around Namecheap's XML API for managing domains,
110
+ DNS, SSL certificates, transfers, users, and domain privacy.
111
+ email:
50
112
  - tristan.gomez@gmail.com
51
113
  executables: []
52
-
53
114
  extensions: []
54
-
55
115
  extra_rdoc_files: []
56
-
57
- files:
58
- - .gitignore
59
- - .rvmrc
116
+ files:
117
+ - CHANGELOG.md
60
118
  - COPYING
61
- - Gemfile
62
119
  - README.md
63
- - Rakefile
64
- - lib/monkey_patch.rb
65
120
  - lib/namecheap.rb
66
121
  - lib/namecheap/api.rb
67
122
  - lib/namecheap/config.rb
@@ -73,44 +128,31 @@ files:
73
128
  - lib/namecheap/users.rb
74
129
  - lib/namecheap/version.rb
75
130
  - lib/namecheap/whois_guard.rb
76
- - namecheap.gemspec
77
- - spec/domains_spec.rb
78
- - spec/namecheap_spec.rb
79
- - spec/spec_helper.rb
80
131
  homepage: https://github.com/parasquid/namecheap
81
- licenses: []
82
-
83
- post_install_message:
132
+ licenses:
133
+ - LGPL-3.0-or-later
134
+ metadata:
135
+ bug_tracker_uri: https://github.com/parasquid/namecheap/issues
136
+ changelog_uri: https://github.com/parasquid/namecheap/blob/legacy/0.3/CHANGELOG.md
137
+ source_code_uri: https://github.com/parasquid/namecheap
138
+ rubygems_mfa_required: 'true'
139
+ post_install_message:
84
140
  rdoc_options: []
85
-
86
- require_paths:
141
+ require_paths:
87
142
  - lib
88
- required_ruby_version: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
143
+ required_ruby_version: !ruby/object:Gem::Requirement
144
+ requirements:
91
145
  - - ">="
92
- - !ruby/object:Gem::Version
93
- hash: 3
94
- segments:
95
- - 0
96
- version: "0"
97
- required_rubygems_version: !ruby/object:Gem::Requirement
98
- none: false
99
- requirements:
146
+ - !ruby/object:Gem::Version
147
+ version: '3.3'
148
+ required_rubygems_version: !ruby/object:Gem::Requirement
149
+ requirements:
100
150
  - - ">="
101
- - !ruby/object:Gem::Version
102
- hash: 3
103
- segments:
104
- - 0
105
- version: "0"
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
106
153
  requirements: []
107
-
108
- rubyforge_project: namecheap
109
- rubygems_version: 1.8.25
110
- signing_key:
111
- specification_version: 3
154
+ rubygems_version: 3.5.22
155
+ signing_key:
156
+ specification_version: 4
112
157
  summary: Ruby wrapper for the Namecheap API
113
- test_files:
114
- - spec/domains_spec.rb
115
- - spec/namecheap_spec.rb
116
- - spec/spec_helper.rb
158
+ test_files: []
data/.gitignore DELETED
@@ -1,8 +0,0 @@
1
- *.gem
2
- .bundle
3
- Gemfile.lock
4
- pkg/*
5
- /nbproject
6
- /bak
7
- config/namecheap.yml
8
-
data/.rvmrc DELETED
@@ -1,3 +0,0 @@
1
- rvm 1.8.7
2
- rvm gemset create namecheap
3
- rvm 1.8.7@namecheap
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source "http://rubygems.org"
2
-
3
- # Specify your gem's dependencies in namecheap.gemspec
4
- gemspec
data/Rakefile DELETED
@@ -1,6 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require 'rspec/core/rake_task'
3
-
4
- RSpec::Core::RakeTask.new(:spec)
5
-
6
- task :default => :spec