docheck 1.1.0 → 1.1.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/Gemfile +3 -0
- data/Rakefile +2 -0
- data/bin/docheck +1 -31
- data/docheck.gemspec +28 -21
- data/lib/docheck/application.rb +74 -0
- data/lib/docheck/command.rb +31 -0
- data/lib/docheck/version.rb +3 -0
- data/lib/docheck.rb +4 -68
- metadata +19 -15
- data/version.rb +0 -3
data/Gemfile
ADDED
data/Rakefile
ADDED
data/bin/docheck
CHANGED
@@ -1,33 +1,3 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
4
|
-
require File.expand_path('../../lib/docheck.rb', __FILE__)
|
5
|
-
rescue LoadError
|
6
|
-
require 'rubygems'
|
7
|
-
require File.expand_path('../../lib/docheck.rb', __FILE__)
|
8
|
-
end
|
9
|
-
|
10
|
-
require 'optparse'
|
11
|
-
|
12
|
-
begin
|
13
|
-
OptionParser.new do |opts|
|
14
|
-
opts.banner = "Usage: docheck [basename]. Example: docheck google"
|
15
|
-
|
16
|
-
opts.on("-v", "--version", "Show version") do
|
17
|
-
puts "Docheck #{Docheck::VERSION}"
|
18
|
-
end
|
19
|
-
|
20
|
-
opts.on("-n", "--name NAME", "Execute domain name checker") do |name|
|
21
|
-
Docheck::Application.new(name).print
|
22
|
-
end
|
23
|
-
|
24
|
-
opts.on_tail("-h", "--help", "Show help") do
|
25
|
-
puts opts
|
26
|
-
exit
|
27
|
-
end
|
28
|
-
end.parse!
|
29
|
-
rescue OptionParser::InvalidOption
|
30
|
-
puts "Invalid option"
|
31
|
-
rescue OptionParser::MissingArgument
|
32
|
-
puts "Missing argument"
|
33
|
-
end
|
3
|
+
require File.expand_path('../../lib/docheck/command.rb', __FILE__)
|
data/docheck.gemspec
CHANGED
@@ -1,25 +1,32 @@
|
|
1
|
-
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "docheck/version"
|
2
4
|
|
3
|
-
Gem::Specification.new do |
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "docheck"
|
7
|
+
s.version = Docheck::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = "Kunto Aji Kristianto"
|
10
|
+
s.email = "kunto.aji.kr@gmail.com"
|
11
|
+
s.homepage = "http://github.com/kuntoaji/docheck"
|
12
|
+
s.summary = 'Domain name availability checker'
|
13
|
+
s.description = <<-EOF
|
8
14
|
Domain name availability checker.
|
9
15
|
EOF
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
16
|
+
|
17
|
+
s.rubyforge_project = "docheck"
|
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
|
+
|
24
|
+
s.has_rdoc = true
|
25
|
+
s.rdoc_options = ['--main', 'README.rdoc']
|
26
|
+
s.extra_rdoc_files = ['README.rdoc', 'LICENSE']
|
27
|
+
|
28
|
+
s.required_ruby_version = '>= 1.8.7'
|
29
|
+
s.requirements << 'ruby-whois, v1.6.6 or greater'
|
30
|
+
s.add_dependency('whois', '~> 1.6.6')
|
31
|
+
s.add_development_dependency('shoulda')
|
25
32
|
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
module Docheck
|
2
|
+
class Application
|
3
|
+
|
4
|
+
# DNS name of the generic top-level domain
|
5
|
+
# http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains
|
6
|
+
TLD = %w[aero asia biz cat com coop edu gov info
|
7
|
+
int jobs mil mobi museum name net org pro tel travel]
|
8
|
+
|
9
|
+
attr_reader :available_domains, :registered_domains
|
10
|
+
|
11
|
+
# base_name is sld (Second Level Domain) and
|
12
|
+
# converted to lower case.
|
13
|
+
def initialize(base_name)
|
14
|
+
@base_name = base_name.to_s.downcase
|
15
|
+
@available_domains = []
|
16
|
+
@registered_domains = []
|
17
|
+
end
|
18
|
+
|
19
|
+
# Print the fetch result.
|
20
|
+
def print
|
21
|
+
result = fetch
|
22
|
+
|
23
|
+
puts "\nDocheck Result\n"
|
24
|
+
puts "--------------\n"
|
25
|
+
puts "Available Domains:"
|
26
|
+
result.first.map{|domain_name| puts "- #{domain_name}"}
|
27
|
+
puts "\n"
|
28
|
+
puts "Registered Domains:"
|
29
|
+
result.last.map{|domain_name| puts "- #{domain_name}"}
|
30
|
+
end
|
31
|
+
|
32
|
+
# Check domain name availability
|
33
|
+
# and return the result as array.
|
34
|
+
#
|
35
|
+
# The first element of array will return all
|
36
|
+
# available domains as array.
|
37
|
+
#
|
38
|
+
# The last element of array will return all
|
39
|
+
# registered domains as array.
|
40
|
+
def fetch
|
41
|
+
attempts = 0
|
42
|
+
TLD.each do |tld|
|
43
|
+
domain_name = "#{@base_name}.#{tld}"
|
44
|
+
begin
|
45
|
+
whois_domain = Whois.whois(domain_name)
|
46
|
+
|
47
|
+
if whois_domain.available?
|
48
|
+
@available_domains << domain_name
|
49
|
+
elsif whois_domain.registered?
|
50
|
+
@registered_domains << domain_name
|
51
|
+
end
|
52
|
+
rescue Timeout::Error
|
53
|
+
if attempts <= 3
|
54
|
+
attempts += 1
|
55
|
+
retry
|
56
|
+
else
|
57
|
+
attempts = 0
|
58
|
+
next
|
59
|
+
end
|
60
|
+
rescue
|
61
|
+
if attempts <= 3
|
62
|
+
attempts += 1
|
63
|
+
retry
|
64
|
+
else
|
65
|
+
attempts = 0
|
66
|
+
next
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
return [@available_domains, @registered_domains]
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
begin
|
2
|
+
require File.expand_path('../../docheck.rb', __FILE__)
|
3
|
+
rescue LoadError
|
4
|
+
require 'rubygems'
|
5
|
+
require File.expand_path('../../docheck.rb', __FILE__)
|
6
|
+
end
|
7
|
+
|
8
|
+
require 'optparse'
|
9
|
+
|
10
|
+
begin
|
11
|
+
OptionParser.new do |opts|
|
12
|
+
opts.banner = "Usage: docheck [basename]. Example: docheck google"
|
13
|
+
|
14
|
+
opts.on("-v", "--version", "Show version") do
|
15
|
+
puts "Docheck #{Docheck::VERSION}"
|
16
|
+
end
|
17
|
+
|
18
|
+
opts.on("-n", "--name NAME", "Execute domain name checker") do |name|
|
19
|
+
Docheck::Application.new(name).print
|
20
|
+
end
|
21
|
+
|
22
|
+
opts.on_tail("-h", "--help", "Show help") do
|
23
|
+
puts opts
|
24
|
+
exit
|
25
|
+
end
|
26
|
+
end.parse!
|
27
|
+
rescue OptionParser::InvalidOption
|
28
|
+
puts "Invalid option"
|
29
|
+
rescue OptionParser::MissingArgument
|
30
|
+
puts "Missing argument"
|
31
|
+
end
|
data/lib/docheck.rb
CHANGED
@@ -1,70 +1,6 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
# Author:: Kunto Aji Kristianto (mailto:kunto.aji.kr@gmail.com)
|
4
|
-
# Copyright:: Copyright (c) 2010 Kunto Aji Kristianto
|
5
|
-
# License:: Distributes under MIT license
|
1
|
+
libdir = File.dirname(__FILE__)
|
2
|
+
$LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
|
6
3
|
|
7
|
-
require File.expand_path('../../version.rb', __FILE__)
|
8
4
|
require 'whois'
|
9
|
-
|
10
|
-
|
11
|
-
class Application
|
12
|
-
|
13
|
-
# DNS name of the generic top-level domain
|
14
|
-
# http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains
|
15
|
-
TLD = %w[aero asia biz cat com coop edu gov info
|
16
|
-
int jobs mil mobi museum name net org pro tel travel]
|
17
|
-
|
18
|
-
attr_reader :available_domains, :registered_domains
|
19
|
-
|
20
|
-
# base_name is sld (Second Level Domain) and
|
21
|
-
# converted to lower case.
|
22
|
-
def initialize(base_name)
|
23
|
-
@base_name = base_name.to_s.downcase
|
24
|
-
@available_domains = []
|
25
|
-
@registered_domains = []
|
26
|
-
end
|
27
|
-
|
28
|
-
# Print the fetch result.
|
29
|
-
def print
|
30
|
-
result = fetch
|
31
|
-
|
32
|
-
puts "\nDocheck Result\n"
|
33
|
-
puts "--------------\n"
|
34
|
-
puts "Available Domains:"
|
35
|
-
result.first.map{|domain_name| puts "- #{domain_name}"}
|
36
|
-
puts "\n"
|
37
|
-
puts "Registered Domains:"
|
38
|
-
result.last.map{|domain_name| puts "- #{domain_name}"}
|
39
|
-
end
|
40
|
-
|
41
|
-
# Check domain name availability
|
42
|
-
# and return the result as array.
|
43
|
-
#
|
44
|
-
# The first element of array will return all
|
45
|
-
# available domains as array.
|
46
|
-
#
|
47
|
-
# The last element of array will return all
|
48
|
-
# registered domains as array.
|
49
|
-
def fetch
|
50
|
-
TLD.each do |tld|
|
51
|
-
domain_name = "#{@base_name}.#{tld}"
|
52
|
-
begin
|
53
|
-
whois_domain = Whois.whois(domain_name)
|
54
|
-
|
55
|
-
if whois_domain.available?
|
56
|
-
@available_domains << domain_name
|
57
|
-
elsif whois_domain.registered?
|
58
|
-
@registered_domains << domain_name
|
59
|
-
end
|
60
|
-
rescue Timeout::Error
|
61
|
-
next
|
62
|
-
rescue
|
63
|
-
next
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
return [@available_domains, @registered_domains]
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
5
|
+
require 'docheck/version'
|
6
|
+
require 'docheck/application'
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: docheck
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 17
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 1.1.
|
9
|
+
- 1
|
10
|
+
version: 1.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Kunto Aji Kristianto
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-01-24 00:00:00 +07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -26,12 +26,12 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
hash:
|
29
|
+
hash: 3
|
30
30
|
segments:
|
31
31
|
- 1
|
32
|
-
-
|
33
|
-
-
|
34
|
-
version: 1.
|
32
|
+
- 6
|
33
|
+
- 6
|
34
|
+
version: 1.6.6
|
35
35
|
type: :runtime
|
36
36
|
version_requirements: *id001
|
37
37
|
- !ruby/object:Gem::Dependency
|
@@ -59,12 +59,16 @@ extra_rdoc_files:
|
|
59
59
|
- LICENSE
|
60
60
|
files:
|
61
61
|
- .gitignore
|
62
|
-
-
|
62
|
+
- Gemfile
|
63
63
|
- LICENSE
|
64
64
|
- README.rdoc
|
65
|
-
-
|
65
|
+
- Rakefile
|
66
66
|
- bin/docheck
|
67
|
+
- docheck.gemspec
|
67
68
|
- lib/docheck.rb
|
69
|
+
- lib/docheck/application.rb
|
70
|
+
- lib/docheck/command.rb
|
71
|
+
- lib/docheck/version.rb
|
68
72
|
- test/docheck_test.rb
|
69
73
|
- test/helper.rb
|
70
74
|
has_rdoc: true
|
@@ -98,12 +102,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
98
102
|
- 0
|
99
103
|
version: "0"
|
100
104
|
requirements:
|
101
|
-
- ruby-whois, v1.
|
102
|
-
rubyforge_project:
|
103
|
-
rubygems_version: 1.
|
105
|
+
- ruby-whois, v1.6.6 or greater
|
106
|
+
rubyforge_project: docheck
|
107
|
+
rubygems_version: 1.4.2
|
104
108
|
signing_key:
|
105
109
|
specification_version: 3
|
106
|
-
summary: Domain name availability checker
|
110
|
+
summary: Domain name availability checker
|
107
111
|
test_files:
|
108
112
|
- test/docheck_test.rb
|
109
113
|
- test/helper.rb
|
data/version.rb
DELETED