docheck 0.1.1 → 1.0.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/.gitignore CHANGED
@@ -1,21 +1,3 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
1
  *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
2
  *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC
3
+ *.swo
data/LICENSE CHANGED
@@ -1,20 +1,19 @@
1
- Copyright (c) 2009 Kunto Aji Kristianto
1
+ Copyright (c) 2010 Kunto Aji Kristianto
2
2
 
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
10
9
 
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
13
12
 
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE
data/README.rdoc CHANGED
@@ -1,25 +1,40 @@
1
- = docheck
1
+ = Docheck
2
+ Docheck is a tool to check domain name availability. By default, It will return all available and registered domains.
2
3
 
3
- Simple Domain Checker Tool
4
4
 
5
- == Install
5
+ == Requirements
6
+
7
+ * Ruby >= 1.8.6
8
+ * whois gem - http://github.com/weppos/whois
9
+
10
+
11
+ == Installation
12
+
13
+ $ gem install docheck
6
14
 
7
- [sudo] gem install docheck
8
15
 
9
16
  == Usage
17
+ w = Whois::Client.new
18
+ From the command line:
19
+
20
+ docheck google
21
+
22
+ From the Ruby file or IRB.
23
+
24
+ require 'rubygems'
25
+ require 'docheck'
26
+
27
+ # Docheck only have two methods: print and fetch
28
+ Docheck.new('github').print
29
+ # or
30
+ Docheck.new('github').fetch
31
+
32
+
33
+ == Author
10
34
 
11
- docheck <domain_name>
35
+ Author:: {Kunto Aji Kristianto}[http://www.railsmine.net/] <kunto.aji.kr@gmail.com>
12
36
 
13
- == Note on Patches/Pull Requests
14
-
15
- * Fork the project.
16
- * Make your feature addition or bug fix.
17
- * Add tests for it. This is important so I don't break it in a
18
- future version unintentionally.
19
- * Commit, do not mess with rakefile, version, or history.
20
- (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
21
- * Send me a pull request. Bonus points for topic branches.
22
37
 
23
- == Copyright
38
+ == License
24
39
 
25
- Copyright (c) 2010 Kunto Aji Kristianto. See LICENSE for details.
40
+ Copyright (c) 2009-2010 Simone Carletti, Whois is released under the MIT license.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 1.0.0
data/bin/docheck CHANGED
@@ -1,57 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
- #
3
- =begin
4
- DoCheck is a simple domain name checker tool
5
- Copyright (C) 2010 Kunto Aji Kristianto
6
-
7
- This program is free software: you can redistribute it and/or modify
8
- it under the terms of the GNU General Public License as published by
9
- the Free Software Foundation, either version 3 of the License, or
10
- any later version.
11
-
12
- This program is distributed in the hope that it will be useful,
13
- but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
- GNU General Public License for more details.
16
-
17
- You should have received a copy of the GNU General Public License
18
- along with this program. If not, see <http://www.gnu.org/licenses/>.e.me
19
- =end
20
2
 
21
- require 'open-uri'
22
-
23
- if ARGV.size < 1
24
- puts '[-] Usage: docheck <domain_name>'
25
- exit 1
26
- end
27
-
28
- puts "Checking...."
29
- begin
30
- domain_name = ARGV[0]
31
- open("http://www.who.is/whois/#{domain_name}/", "User-Agent" => "Mozilla/5.0") {|page|
32
- page.each_line {|line|
33
- if (line =~ /ERROR/)
34
- puts '[-] ERROR! Please check your domain name'
35
- exit 1
36
- end
37
- if (line =~ /REGISTRY WHOIS FOR/)
38
- puts "[-] #{domain_name} is not available"
39
- end
40
-
41
- if (line =~ /IS AVAILABLE/)
42
- puts "[+] #{domain_name} is available"
43
- end
44
-
45
- if (line =~ /available_domain/)
46
- avail_domain = line.slice(/domain=[a-z]+[\.]{1}[a-z]{2,}/).slice(/[a-z]+[\.]{1}[a-z]{2,}/)
47
- puts "[+] Available Domain: #{avail_domain}"
48
- end
49
- }
50
- }
51
- rescue OpenURI::HTTPError => error_msg
52
- puts "[-] Ups! Got bad status code: #{error_msg}. Try again"
53
- rescue Timeout::Error
54
- puts '[-] oops! Timeout bro, check your internet connection'
55
- rescue Exception => e
56
- puts "#{e.message}"
3
+ begin
4
+ require File.expand_path('../../lib/docheck.rb', __FILE__)
5
+ rescue LoadError
6
+ require 'rubygems'
7
+ require File.expand_path('../../lib/docheck.rb', __FILE__)
57
8
  end
9
+
10
+ ARGV.size > 0 ? Docheck.new(ARGV.first).print : puts("Usage: docheck yourdomain. Example: docheck google")
data/docheck.gemspec CHANGED
@@ -1,54 +1,23 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = %q{docheck}
8
- s.version = "0.1.1"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Kunto Aji Kristianto"]
12
- s.date = %q{2010-01-13}
13
- s.default_executable = %q{docheck}
14
- s.description = %q{tool to check whether domain name is available}
15
- s.email = %q{kunto.aji.kr@gmail.com}
16
- s.executables = ["docheck"]
17
- s.extra_rdoc_files = [
18
- "LICENSE",
19
- "README.rdoc"
20
- ]
21
- s.files = [
22
- ".document",
23
- ".gitignore",
24
- "LICENSE",
25
- "README.rdoc",
26
- "Rakefile",
27
- "VERSION",
28
- "bin/docheck",
29
- "docheck.gemspec",
30
- "lib/docheck.rb",
31
- "test/helper.rb",
32
- "test/test_docheck.rb"
33
- ]
34
- s.homepage = %q{http://github.com/kuntoaji/docheck}
35
- s.rdoc_options = ["--charset=UTF-8"]
36
- s.require_paths = ["lib"]
37
- s.rubygems_version = %q{1.3.5}
38
- s.summary = %q{domain name checker}
39
- s.test_files = [
40
- "test/helper.rb",
41
- "test/test_docheck.rb"
42
- ]
43
-
44
- if s.respond_to? :specification_version then
45
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
46
- s.specification_version = 3
47
-
48
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
49
- else
50
- end
51
- else
52
- end
1
+ Gem::Specification.new do |spec|
2
+ spec.authors = 'Kunto Aji Kristianto'
3
+ spec.add_dependency('whois', '~> 1.3.8')
4
+ spec.description = <<-EOF
5
+ Docheck is a tool to check domain name availability.
6
+ By default, It will return all available and registered domains.
7
+ EOF
8
+ spec.email = 'kunto.aji.kr@gmail.com'
9
+ spec.executables << 'docheck'
10
+ spec.extra_rdoc_files = ['README.rdoc', 'LICENSE', 'VERSION']
11
+ spec.files = ['.gitignore', 'docheck.gemspec', 'LICENSE',
12
+ 'README.rdoc', 'VERSION', 'bin/docheck', 'lib/docheck.rb',
13
+ 'test/docheck_test.rb', 'test/helper.rb']
14
+ spec.has_rdoc = true
15
+ spec.homepage = 'http://github.com/kuntoaji/docheck'
16
+ spec.name = 'docheck'
17
+ spec.rdoc_options = ['--main', 'README.rdoc']
18
+ spec.required_ruby_version = '>= 1.8.7'
19
+ spec.requirements << 'ruby-whois, v1.3.8 or greater'
20
+ spec.summary = 'Domain name availability checker.'
21
+ spec.test_files = ['test/docheck_test.rb', 'test/helper.rb']
22
+ spec.version = '1.0.0'
53
23
  end
54
-
data/lib/docheck.rb CHANGED
@@ -0,0 +1,65 @@
1
+ # Domain name availability checker
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
6
+
7
+ require 'whois'
8
+
9
+ class Docheck
10
+
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}
14
+
15
+ # base_name is sld (Second Level Domain) and
16
+ # converted to lower case.
17
+ def initialize(base_name)
18
+ @base_name = base_name
19
+ @available_domains = []
20
+ @registered_domains = []
21
+ end
22
+
23
+ # Print the result to STDOUT.
24
+ # Used by docheck executable.
25
+ def print
26
+ result = fetch
27
+
28
+ puts "\nDocheck Result\n"
29
+ puts "--------------\n"
30
+ puts "Available Domains:"
31
+ result.first.map{|domain_name| puts "- #{domain_name}"}
32
+ puts "\n"
33
+ puts "Registered Domains:"
34
+ result.last.map{|domain_name| puts "- #{domain_name}"}
35
+ end
36
+
37
+ # Responsible to check domain's availability
38
+ # and return the result as array.
39
+ #
40
+ # The first element of array will return all
41
+ # available domains as array.
42
+ #
43
+ # The last element of array will return all
44
+ # registered domains as array.
45
+ def fetch
46
+ TLD.each do |tld|
47
+ domain_name = "#{@base_name}.#{tld}"
48
+ begin
49
+ whois_domain = Whois.whois(domain_name)
50
+
51
+ if whois_domain.available?
52
+ @available_domains << domain_name
53
+ elsif whois_domain.registered?
54
+ @registered_domains << domain_name
55
+ end
56
+ rescue Timeout::Error
57
+ next
58
+ rescue
59
+ next
60
+ end
61
+ end
62
+
63
+ return [@available_domains, @registered_domains]
64
+ end
65
+ end
@@ -0,0 +1,22 @@
1
+ require File.expand_path('../helper.rb', __FILE__)
2
+
3
+ class TestDocheck < Test::Unit::TestCase
4
+ context "A Docheck instance" do
5
+ setup do
6
+ @docheck = Docheck.new('railsmine')
7
+ end
8
+
9
+ should "return all availability and registered domain" do
10
+ result = @docheck.fetch
11
+ assert result.is_a?(Array)
12
+ assert result.first.is_a?(Array)
13
+ assert result.last.is_a?(Array)
14
+ assert_not_nil result
15
+ end
16
+
17
+ should "run #print successfully" do
18
+ assert @docheck.print
19
+ end
20
+ end
21
+ end
22
+
data/test/helper.rb CHANGED
@@ -6,5 +6,5 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
6
6
  $LOAD_PATH.unshift(File.dirname(__FILE__))
7
7
  require 'docheck'
8
8
 
9
- class Test::Unit::TestCase
10
- end
9
+ #class Test::Unit::TestCase
10
+ #end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docheck
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kunto Aji Kristianto
@@ -9,45 +9,54 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-13 00:00:00 +07:00
13
- default_executable: docheck
14
- dependencies: []
15
-
16
- description: tool to check whether domain name is available
12
+ date: 2010-10-08 00:00:00 +07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: whois
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ~>
22
+ - !ruby/object:Gem::Version
23
+ version: 1.3.8
24
+ version:
25
+ description: " Docheck is a tool to check domain name availability.\n By default, It will return all available and registered domains.\n"
17
26
  email: kunto.aji.kr@gmail.com
18
27
  executables:
19
28
  - docheck
20
29
  extensions: []
21
30
 
22
31
  extra_rdoc_files:
23
- - LICENSE
24
32
  - README.rdoc
33
+ - LICENSE
34
+ - VERSION
25
35
  files:
26
- - .document
27
36
  - .gitignore
37
+ - docheck.gemspec
28
38
  - LICENSE
29
39
  - README.rdoc
30
- - Rakefile
31
40
  - VERSION
32
41
  - bin/docheck
33
- - docheck.gemspec
34
42
  - lib/docheck.rb
43
+ - test/docheck_test.rb
35
44
  - test/helper.rb
36
- - test/test_docheck.rb
37
45
  has_rdoc: true
38
46
  homepage: http://github.com/kuntoaji/docheck
39
47
  licenses: []
40
48
 
41
49
  post_install_message:
42
50
  rdoc_options:
43
- - --charset=UTF-8
51
+ - --main
52
+ - README.rdoc
44
53
  require_paths:
45
54
  - lib
46
55
  required_ruby_version: !ruby/object:Gem::Requirement
47
56
  requirements:
48
57
  - - ">="
49
58
  - !ruby/object:Gem::Version
50
- version: "0"
59
+ version: 1.8.7
51
60
  version:
52
61
  required_rubygems_version: !ruby/object:Gem::Requirement
53
62
  requirements:
@@ -55,13 +64,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
64
  - !ruby/object:Gem::Version
56
65
  version: "0"
57
66
  version:
58
- requirements: []
59
-
67
+ requirements:
68
+ - ruby-whois, v1.3.8 or greater
60
69
  rubyforge_project:
61
70
  rubygems_version: 1.3.5
62
71
  signing_key:
63
72
  specification_version: 3
64
- summary: domain name checker
73
+ summary: Domain name availability checker.
65
74
  test_files:
75
+ - test/docheck_test.rb
66
76
  - test/helper.rb
67
- - test/test_docheck.rb
data/.document DELETED
@@ -1,5 +0,0 @@
1
- README.rdoc
2
- lib/**/*.rb
3
- bin/*
4
- features/**/*.feature
5
- LICENSE
data/Rakefile DELETED
@@ -1,52 +0,0 @@
1
- require 'rubygems'
2
- require 'rake'
3
-
4
- begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |gem|
7
- gem.name = "docheck"
8
- gem.summary = "domain name checker"
9
- gem.description = "tool to check whether domain name is available"
10
- gem.email = "kunto.aji.kr@gmail.com"
11
- gem.homepage = "http://github.com/kuntoaji/docheck"
12
- gem.authors = ["Kunto Aji Kristianto"]
13
- gem.executables = ["docheck"]
14
- end
15
- Jeweler::GemcutterTasks.new
16
- rescue LoadError
17
- puts "DoCheck is not available. Install it with: gem install docheck"
18
- end
19
-
20
- require 'rake/testtask'
21
- Rake::TestTask.new(:test) do |test|
22
- test.libs << 'lib' << 'test'
23
- test.pattern = 'test/**/test_*.rb'
24
- test.verbose = true
25
- end
26
-
27
- begin
28
- require 'rcov/rcovtask'
29
- Rcov::RcovTask.new do |test|
30
- test.libs << 'test'
31
- test.pattern = 'test/**/test_*.rb'
32
- test.verbose = true
33
- end
34
- rescue LoadError
35
- task :rcov do
36
- abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
37
- end
38
- end
39
-
40
- task :test => :check_dependencies
41
-
42
- task :default => :test
43
-
44
- require 'rake/rdoctask'
45
- Rake::RDocTask.new do |rdoc|
46
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
47
-
48
- rdoc.rdoc_dir = 'rdoc'
49
- rdoc.title = "docheck #{version}"
50
- rdoc.rdoc_files.include('README*')
51
- rdoc.rdoc_files.include('lib/**/*.rb')
52
- end
data/test/test_docheck.rb DELETED
@@ -1,7 +0,0 @@
1
- require 'helper'
2
-
3
- class TestDocheck < Test::Unit::TestCase
4
- should "probably rename this file and start testing for real" do
5
- flunk "hey buddy, you should probably rename this file and start testing for real"
6
- end
7
- end