docheck 1.0.1 → 1.1.0

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/README.rdoc CHANGED
@@ -1,5 +1,5 @@
1
1
  = Docheck
2
- Docheck is a tool to check domain name availability. By default, It will return all available and registered domains.
2
+ Domain name availability checker. By default, It will return all available and registered domains.
3
3
 
4
4
 
5
5
  == Requirements
@@ -16,17 +16,17 @@
16
16
  == Usage
17
17
  From the command line:
18
18
 
19
- docheck google
19
+ docheck -n google
20
20
 
21
21
  From the Ruby file or IRB.
22
22
 
23
23
  require 'rubygems'
24
24
  require 'docheck'
25
25
 
26
- # Docheck only have two methods: print and fetch
27
- Docheck.new('github').print
26
+ # Docheck only have two instance methods: print and fetch
27
+ Docheck::Application.new('github').print
28
28
  # or
29
- Docheck.new('github').fetch
29
+ Docheck::Application.new('github').fetch
30
30
 
31
31
 
32
32
  == Author
@@ -36,4 +36,4 @@ Author:: {Kunto Aji Kristianto}[http://www.railsmine.net/] <kunto.aji.kr@gmail.c
36
36
 
37
37
  == License
38
38
 
39
- Copyright (c) 2009-2010 Simone Carletti, Whois is released under the MIT license.
39
+ Copyright (c) 2010 Kunto Aji Kristianto, Docheck is released under the MIT license.
data/bin/docheck CHANGED
@@ -7,4 +7,27 @@ rescue LoadError
7
7
  require File.expand_path('../../lib/docheck.rb', __FILE__)
8
8
  end
9
9
 
10
- ARGV.size > 0 ? Docheck.new(ARGV.first).print : puts("Usage: docheck yourdomain. Example: docheck google")
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
data/docheck.gemspec CHANGED
@@ -1,14 +1,17 @@
1
+ require File.expand_path('../version.rb', __FILE__)
2
+
1
3
  Gem::Specification.new do |spec|
2
4
  spec.authors = 'Kunto Aji Kristianto'
3
5
  spec.add_dependency('whois', '~> 1.3.8')
6
+ spec.add_development_dependency('shoulda')
4
7
  spec.description = <<-EOF
5
- Docheck is domain name availability checker.
8
+ Domain name availability checker.
6
9
  EOF
7
10
  spec.email = 'kunto.aji.kr@gmail.com'
8
11
  spec.executables << 'docheck'
9
- spec.extra_rdoc_files = ['README.rdoc', 'LICENSE', 'VERSION']
12
+ spec.extra_rdoc_files = ['README.rdoc', 'LICENSE']
10
13
  spec.files = ['.gitignore', 'docheck.gemspec', 'LICENSE',
11
- 'README.rdoc', 'VERSION', 'bin/docheck', 'lib/docheck.rb',
14
+ 'README.rdoc', 'version.rb', 'bin/docheck', 'lib/docheck.rb',
12
15
  'test/docheck_test.rb', 'test/helper.rb']
13
16
  spec.has_rdoc = true
14
17
  spec.homepage = 'http://github.com/kuntoaji/docheck'
@@ -18,5 +21,5 @@ Gem::Specification.new do |spec|
18
21
  spec.requirements << 'ruby-whois, v1.3.8 or greater'
19
22
  spec.summary = 'Domain name availability checker.'
20
23
  spec.test_files = ['test/docheck_test.rb', 'test/helper.rb']
21
- spec.version = '1.0.1'
24
+ spec.version = Docheck::VERSION
22
25
  end
data/lib/docheck.rb CHANGED
@@ -4,66 +4,67 @@
4
4
  # Copyright:: Copyright (c) 2010 Kunto Aji Kristianto
5
5
  # License:: Distributes under MIT license
6
6
 
7
+ require File.expand_path('../../version.rb', __FILE__)
7
8
  require 'whois'
8
9
 
9
- class Docheck
10
+ module Docheck
11
+ class Application
10
12
 
11
- # DNS name of the generic top-level domain
12
- TLD = %w{aero asia biz cat com coop edu gov info
13
- int jobs mil mobi museum name net org pro tel travel}
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]
14
17
 
15
- # Public instance method to return available domains or
16
- # registered domains
17
- attr_reader :available_domains, :registered_domains
18
+ attr_reader :available_domains, :registered_domains
18
19
 
19
- # base_name is sld (Second Level Domain) and
20
- # converted to lower case.
21
- def initialize(base_name)
22
- @base_name = base_name.downcase
23
- @available_domains = []
24
- @registered_domains = []
25
- end
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
26
27
 
27
- # Print the result to STDOUT.
28
- # Used by docheck executable.
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
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
40
 
41
- # Responsible to check domain's 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)
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
54
 
55
- if whois_domain.available?
56
- @available_domains << domain_name
57
- elsif whois_domain.registered?
58
- @registered_domains << domain_name
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
59
64
  end
60
- rescue Timeout::Error
61
- next
62
- rescue
63
- next
64
65
  end
65
- end
66
66
 
67
- return [@available_domains, @registered_domains]
67
+ return [@available_domains, @registered_domains]
68
+ end
68
69
  end
69
70
  end
data/test/docheck_test.rb CHANGED
@@ -7,19 +7,46 @@ class TestDocheck < Test::Unit::TestCase
7
7
  end
8
8
  end
9
9
 
10
+ context "Docheck command" do
11
+ setup do
12
+ @docheck_bin = File.expand_path("../../bin/docheck", __FILE__)
13
+ end
14
+
15
+ should "shows version" do
16
+ assert_equal "Docheck #{Docheck::VERSION}\n", `ruby #{@docheck_bin} -v`
17
+ assert_equal "Docheck #{Docheck::VERSION}\n", `ruby #{@docheck_bin} --version`
18
+ end
19
+
20
+ should "executes domain name checker correctly" do
21
+ assert `ruby #{@docheck_bin} -n railsmine`
22
+ assert `ruby #{@docheck_bin} --name railsmine`
23
+ end
24
+
25
+ should "prints 'Invalid option'" do
26
+ assert_equal "Invalid option\n", `ruby #{@docheck_bin} -f`
27
+ assert_equal "Invalid option\n", `ruby #{@docheck_bin} --foo`
28
+ assert_equal "Invalid option\n", `ruby #{@docheck_bin} --foo bar`
29
+ end
30
+
31
+ should "prints 'Missing argument'" do
32
+ assert_equal "Missing argument\n", `ruby #{@docheck_bin} -n`
33
+ assert_equal "Missing argument\n", `ruby #{@docheck_bin} --name`
34
+ end
35
+ end
36
+
10
37
  context "A Docheck instance" do
11
38
  setup do
12
- @docheck = Docheck.new('railsmine')
39
+ @docheck = Docheck::Application.new('railsmine')
13
40
  end
14
41
 
15
- should "respond to all its public instance method" do
42
+ should "responds to all its public instance method" do
16
43
  assert @docheck.respond_to?(:fetch)
17
44
  assert @docheck.respond_to?(:print)
18
45
  assert @docheck.respond_to?(:available_domains)
19
46
  assert @docheck.respond_to?(:registered_domains)
20
47
  end
21
48
 
22
- should "return all availability and registered domain" do
49
+ should "returns all availability and registered domain" do
23
50
  result = @docheck.fetch
24
51
  assert result.is_a?(Array)
25
52
  assert result.first.is_a?(Array)
@@ -31,7 +58,7 @@ class TestDocheck < Test::Unit::TestCase
31
58
  assert_not_nil result
32
59
  end
33
60
 
34
- should "run #print successfully" do
61
+ should "runs #print successfully" do
35
62
  assert @docheck.print
36
63
  end
37
64
  end
data/version.rb ADDED
@@ -0,0 +1,3 @@
1
+ module Docheck
2
+ VERSION = '1.1.0'
3
+ end
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: 21
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
- - 0
9
8
  - 1
10
- version: 1.0.1
9
+ - 0
10
+ version: 1.1.0
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: 2010-10-14 00:00:00 +07:00
18
+ date: 2010-11-17 00:00:00 +07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -34,7 +34,21 @@ dependencies:
34
34
  version: 1.3.8
35
35
  type: :runtime
36
36
  version_requirements: *id001
37
- description: " Docheck is domain name availability checker.\n"
37
+ - !ruby/object:Gem::Dependency
38
+ name: shoulda
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ type: :development
50
+ version_requirements: *id002
51
+ description: " Domain name availability checker.\n"
38
52
  email: kunto.aji.kr@gmail.com
39
53
  executables:
40
54
  - docheck
@@ -43,13 +57,12 @@ extensions: []
43
57
  extra_rdoc_files:
44
58
  - README.rdoc
45
59
  - LICENSE
46
- - VERSION
47
60
  files:
48
61
  - .gitignore
49
62
  - docheck.gemspec
50
63
  - LICENSE
51
64
  - README.rdoc
52
- - VERSION
65
+ - version.rb
53
66
  - bin/docheck
54
67
  - lib/docheck.rb
55
68
  - test/docheck_test.rb
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 1.0.1