name_checker 0.0.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/.gitignore +21 -0
- data/.rspec +1 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/README.md +66 -0
- data/Rakefile +2 -0
- data/lib/name_checker.rb +27 -0
- data/lib/name_checker/availability.rb +39 -0
- data/lib/name_checker/configuration.rb +30 -0
- data/lib/name_checker/facebook_checker.rb +37 -0
- data/lib/name_checker/logging.rb +26 -0
- data/lib/name_checker/net_checker.rb +15 -0
- data/lib/name_checker/railties.rb +7 -0
- data/lib/name_checker/robo_whois_checker.rb +61 -0
- data/lib/name_checker/twitter_checker.rb +67 -0
- data/lib/name_checker/version.rb +3 -0
- data/name_checker.gemspec +25 -0
- data/spec/fixtures/vcr_cassettes/facebook/available.yml +44 -0
- data/spec/fixtures/vcr_cassettes/facebook/unavailable.yml +42 -0
- data/spec/fixtures/vcr_cassettes/facebook/weird_chars.yml +42 -0
- data/spec/fixtures/vcr_cassettes/robo_whois/available.yml +48 -0
- data/spec/fixtures/vcr_cassettes/robo_whois/credits.yml +48 -0
- data/spec/fixtures/vcr_cassettes/robo_whois/unavailable.yml +48 -0
- data/spec/fixtures/vcr_cassettes/twitter/available.yml +55 -0
- data/spec/fixtures/vcr_cassettes/twitter/rate_limit.yml +61 -0
- data/spec/fixtures/vcr_cassettes/twitter/suspended.yml +55 -0
- data/spec/fixtures/vcr_cassettes/twitter/unavailable.yml +61 -0
- data/spec/name_checker/availability_spec.rb +39 -0
- data/spec/name_checker/facebook_checker_spec.rb +54 -0
- data/spec/name_checker/net_checker_spec.rb +26 -0
- data/spec/name_checker/robo_whois_checker_spec.rb +59 -0
- data/spec/name_checker/twitter_checker_spec.rb +72 -0
- data/spec/name_checker/whois_checker.rb +10 -0
- data/spec/name_checker/whois_checker_spec.rb +33 -0
- data/spec/name_checker_spec.rb +24 -0
- data/spec/spec_helper.rb +27 -0
- data/spec/support/helpers.rb +12 -0
- metadata +149 -0
@@ -0,0 +1,61 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://api.twitter.com/1/users/show.json?screen_name=m
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers: {}
|
10
|
+
response:
|
11
|
+
status:
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
headers:
|
15
|
+
X-Ratelimit-Limit:
|
16
|
+
- '150'
|
17
|
+
X-Ratelimit-Remaining:
|
18
|
+
- '135'
|
19
|
+
X-Ratelimit-Reset:
|
20
|
+
- '1337090175'
|
21
|
+
X-Ratelimit-Class:
|
22
|
+
- api
|
23
|
+
Content-Type:
|
24
|
+
- application/json;charset=utf-8
|
25
|
+
Last-Modified:
|
26
|
+
- Tue, 15 May 2012 13:47:05 GMT
|
27
|
+
Expires:
|
28
|
+
- Tue, 31 Mar 1981 05:00:00 GMT
|
29
|
+
Pragma:
|
30
|
+
- no-cache
|
31
|
+
Cache-Control:
|
32
|
+
- no-cache, no-store, must-revalidate, pre-check=0, post-check=0
|
33
|
+
Set-Cookie:
|
34
|
+
- guest_id="v1:133708962582792815";Expires=Thu, 15-May-14 13:47:05 GMT;Path=/;Domain=.twitter.com
|
35
|
+
- k=46.7.124.72.ff16c3e05efca4d7; path=/; expires=Tue, 22-May-2012 13:47:05
|
36
|
+
UTC; domain=.api.twitter.com; httponly
|
37
|
+
Status:
|
38
|
+
- 200 OK
|
39
|
+
X-Transaction:
|
40
|
+
- b566d4d13fd85283
|
41
|
+
X-Frame-Options:
|
42
|
+
- SAMEORIGIN
|
43
|
+
Date:
|
44
|
+
- Tue, 15 May 2012 13:47:05 GMT
|
45
|
+
Content-Length:
|
46
|
+
- '2020'
|
47
|
+
Server:
|
48
|
+
- tfe
|
49
|
+
body:
|
50
|
+
encoding: US-ASCII
|
51
|
+
string: ! '{"id":7998822,"id_str":"7998822","name":"Mark Douglass","screen_name":"m","location":"Bad
|
52
|
+
Kreuznach, Germany","description":"Sorry if I don''t reply to @mentions -
|
53
|
+
they are 99.9% incorrect and I''ve basically stopped checking them. \r\nPS:
|
54
|
+
Not interested in selling @m or @md - sorry!","url":"http:\/\/friendfeed.com\/mdoug","protected":false,"followers_count":17377,"friends_count":1480,"listed_count":195,"created_at":"Mon
|
55
|
+
Aug 06 18:15:01 +0000 2007","favourites_count":5149,"utc_offset":3600,"time_zone":"Berlin","geo_enabled":true,"verified":false,"statuses_count":3577,"lang":"en","status":{"created_at":"Sat
|
56
|
+
May 12 12:34:07 +0000 2012","id":201289149536419840,"id_str":"201289149536419840","text":"I
|
57
|
+
was just awarded the \"TV Elite\" badge at http:\/\/t.co\/zAAbEZ39","source":"\u003ca
|
58
|
+
href=\"http:\/\/gomiso.com\" rel=\"nofollow\"\u003eMiso\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":0,"favorited":false,"retweeted":false,"possibly_sensitive":false},"contributors_enabled":false,"is_translator":false,"profile_background_color":"E4F2F5","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/3055488\/2364_body2.jpg","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/3055488\/2364_body2.jpg","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1702184506\/m_normal.jpg","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1702184506\/m_normal.jpg","profile_link_color":"2D506C","profile_sidebar_border_color":"6386A3","profile_sidebar_fill_color":"E4F2F5","profile_text_color":"0A2817","profile_use_background_image":true,"show_all_inline_media":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":null,"notifications":null}'
|
59
|
+
http_version:
|
60
|
+
recorded_at: Tue, 15 May 2012 13:47:05 GMT
|
61
|
+
recorded_with: VCR 2.1.1
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe NameChecker::Availability do
|
4
|
+
describe "available?" do
|
5
|
+
it "should return true if available" do
|
6
|
+
availability = klass.new('net', true)
|
7
|
+
availability.should be_available
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should return false otherwise" do
|
11
|
+
availability = klass.new('net', false)
|
12
|
+
availability.should_not be_available
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "unavailable?" do
|
17
|
+
it "should return true if unavailable" do
|
18
|
+
availability = klass.new('net', false)
|
19
|
+
availability.should be_unavailable
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should return false otherwise" do
|
23
|
+
availability = klass.new('net', true)
|
24
|
+
availability.should_not be_unavailable
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "unknown?" do
|
29
|
+
it "should return true if unknown" do
|
30
|
+
availability = klass.new('net', nil)
|
31
|
+
availability.should be_unknown
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should return false otherwise" do
|
35
|
+
availability = klass.new('net', true)
|
36
|
+
availability.should_not be_unknown
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe NameChecker::FacebookChecker, "check" do
|
4
|
+
let(:fixtures_dir) { "facebook" }
|
5
|
+
subject { NameChecker::FacebookChecker }
|
6
|
+
|
7
|
+
def fixture_path(name)
|
8
|
+
"#{fixtures_dir}/#{name}"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should return negative if the name is too short" do
|
12
|
+
VCR.use_cassette(fixture_path("short")) do
|
13
|
+
availability = subject.check("jsda")
|
14
|
+
availability.should be_unavailable
|
15
|
+
availability.service.should == "facebook"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should return positive the name is available" do
|
20
|
+
VCR.use_cassette(fixture_path("available")) do
|
21
|
+
availability = subject.check("sdfjksdh")
|
22
|
+
availability.should be_available
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should return negtive if the name is taken" do
|
27
|
+
VCR.use_cassette(fixture_path("unavailable")) do
|
28
|
+
availability = subject.check("davidtuite")
|
29
|
+
availability.should be_unavailable
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should non choke on weird chars" do
|
34
|
+
VCR.use_cassette(fixture_path("weird_chars")) do
|
35
|
+
availability = subject.check("rememberly")
|
36
|
+
availability.should be_unavailable
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
context "server returns 500 response" do
|
41
|
+
let(:response) { stub(code: 500, headers: {}) }
|
42
|
+
before { subject.stub(:get) { response } }
|
43
|
+
|
44
|
+
it "should return unknown if there is an error" do
|
45
|
+
availability = subject.check("dsjfh")
|
46
|
+
availability.should be_unknown
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should log the error if there is a server error" do
|
50
|
+
Logging.logger.should_receive(:warn)
|
51
|
+
subject.check("kdfjss")
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe NameChecker::NetChecker do
|
4
|
+
subject { NameChecker::NetChecker }
|
5
|
+
|
6
|
+
describe "check" do
|
7
|
+
let(:host_name) { "apple" }
|
8
|
+
let(:tld) { ".com" }
|
9
|
+
|
10
|
+
# NOTE: This test assumes there is a ROBO_WHOIS_API_KEY
|
11
|
+
# set in spec/shec_helper.rb
|
12
|
+
it "should hit the RoboWhoisChecker if there is an api key" do
|
13
|
+
NameChecker::RoboWhoisChecker.should_receive(:check)
|
14
|
+
.with(host_name + tld)
|
15
|
+
subject.check(host_name, tld)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should hit the WhoisChecker if there is no api key" do
|
19
|
+
NameChecker.configuration.stub(:robo_whois_api_key) { nil }
|
20
|
+
|
21
|
+
NameChecker::WhoisChecker.should_receive(:check)
|
22
|
+
.with(host_name + tld)
|
23
|
+
subject.check(host_name, tld)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe NameChecker::RoboWhoisChecker, "check" do
|
4
|
+
let(:fixtures_dir) { "robo_whois" }
|
5
|
+
subject { NameChecker::RoboWhoisChecker }
|
6
|
+
|
7
|
+
def fixture_path(name)
|
8
|
+
"#{fixtures_dir}/#{name}"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should raise an error if there is no api key"
|
12
|
+
|
13
|
+
it "should tell if the domain is unavailable" do
|
14
|
+
VCR.use_cassette(fixture_path("unavailable")) do
|
15
|
+
availability = subject.check("apple.com")
|
16
|
+
availability.should be_unavailable
|
17
|
+
availability.service.should == 'robo_whois'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should tell if the domain is available" do
|
22
|
+
available_domain = "fwekjfkewfhwefhhfjcjksdjklka.com"
|
23
|
+
VCR.use_cassette(fixture_path("available")) do
|
24
|
+
availability = subject.check(available_domain)
|
25
|
+
availability.should be_available
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should log if the remaining credits are below 50" do
|
30
|
+
VCR.use_cassette(fixture_path("credits")) do
|
31
|
+
Logging.logger.should_receive(:warn)
|
32
|
+
availability = subject.check("apple.ly")
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should not log if the remaining credits are above 50" do
|
37
|
+
VCR.use_cassette(fixture_path("unavailable")) do
|
38
|
+
Logging.logger.should_not_receive(:warn)
|
39
|
+
availability = subject.check("apple.com")
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# NOTE: These don't hit the network
|
44
|
+
context "server returns non-200 status" do
|
45
|
+
let(:host) { "apple.com" }
|
46
|
+
let(:response) { stub(headers: {}, code: 500) }
|
47
|
+
before { subject.stub(:get) { response } }
|
48
|
+
|
49
|
+
it "should log" do
|
50
|
+
Logging.logger.should_receive(:warn)
|
51
|
+
subject.check(host)
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should return 'unknown' availability" do
|
55
|
+
availability = subject.check(host)
|
56
|
+
availability.should be_unknown
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe NameChecker::TwitterChecker, "check" do
|
4
|
+
let(:fixtures_dir) { "twitter" }
|
5
|
+
subject { NameChecker::TwitterChecker }
|
6
|
+
|
7
|
+
def fixture_path(name)
|
8
|
+
"#{fixtures_dir}/#{name}"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should return positive the name is available" do
|
12
|
+
VCR.use_cassette(fixture_path("available")) do
|
13
|
+
availability = subject.check("sdfjksdh")
|
14
|
+
availability.should be_available
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should return negative if the name is too long" do
|
19
|
+
VCR.use_cassette(fixture_path("long")) do
|
20
|
+
long_name = "sjkhdfkjsdhkjfhksjdfhkjsdsjhfkjhs"
|
21
|
+
availability = subject.check(long_name)
|
22
|
+
availability.should be_unavailable
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should return negtive if the name is taken" do
|
27
|
+
VCR.use_cassette(fixture_path("unavailable")) do
|
28
|
+
availability = subject.check("m")
|
29
|
+
availability.should be_unavailable
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "rate limit handling" do
|
34
|
+
it "should log if the ratelimit-remaining if it is below 20" do
|
35
|
+
VCR.use_cassette(fixture_path("rate_limit")) do
|
36
|
+
Logging.logger.should_receive(:warn)
|
37
|
+
subject.check("m")
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should not log if the ratelimit-remaining if it is above 20" do
|
42
|
+
VCR.use_cassette(fixture_path("unavailable")) do
|
43
|
+
Logging.logger.should_not_receive(:warn)
|
44
|
+
subject.check("m")
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
context "server returns 500 response" do
|
50
|
+
let(:response) { stub(code: 500, headers: {}) }
|
51
|
+
before { subject.stub(:get) { response } }
|
52
|
+
|
53
|
+
it "should return unknown if there is an error" do
|
54
|
+
availability = subject.check("dsjfh")
|
55
|
+
availability.should be_unknown
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should log the error if there is a server error" do
|
59
|
+
# Rails.logger.should_receive(:warn)
|
60
|
+
subject.check("kdfj")
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
context "user has been suspenved" do
|
65
|
+
it "should return negative" do
|
66
|
+
VCR.use_cassette(fixture_path("suspended")) do
|
67
|
+
availability = subject.check("apple")
|
68
|
+
availability.should be_unavailable
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe NameChecker::WhoisChecker do
|
4
|
+
let(:fixtures_dir) { "whois" }
|
5
|
+
subject { NameChecker::WhoisChecker }
|
6
|
+
|
7
|
+
def fixture_path(name)
|
8
|
+
"#{fixtures_dir}/#{name}"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should tell if the domain is available" do
|
12
|
+
VCR.use_cassette(fixture_path('available')) do
|
13
|
+
availability = subject.check("dsjfdfjdjfd.com")
|
14
|
+
availability.should be_available
|
15
|
+
availability.service.should == 'whois'
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should tell if the domain is unavailable" do
|
20
|
+
VCR.use_cassette(fixture_path("unavailable")) do
|
21
|
+
availability = subject.check("apple.com")
|
22
|
+
availability.should be_unavailable
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should tell if the whois doesn't work" do
|
27
|
+
Whois.stub(:available?) { nil }
|
28
|
+
VCR.use_cassette(fixture_path("unknown")) do
|
29
|
+
availability = subject.check("apple.com")
|
30
|
+
availability.should be_unknown
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe NameChecker do
|
4
|
+
describe "check" do
|
5
|
+
let(:text) { "hello" }
|
6
|
+
subject { NameChecker }
|
7
|
+
|
8
|
+
it "should check the twitter service" do
|
9
|
+
NameChecker::TwitterChecker.should_receive(:check).with(text)
|
10
|
+
subject.check(text, 'twitter')
|
11
|
+
end
|
12
|
+
|
13
|
+
it "shoud check the facebook service" do
|
14
|
+
NameChecker::FacebookChecker.should_receive(:check).with(text)
|
15
|
+
subject.check(text, 'facebook')
|
16
|
+
end
|
17
|
+
|
18
|
+
it "shoud check the robo whois service" do
|
19
|
+
service_name = 'com'
|
20
|
+
NameChecker::NetChecker.should_receive(:check).with(text, service_name)
|
21
|
+
subject.check(text, service_name)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
require "name_checker"
|
2
|
+
require 'vcr'
|
3
|
+
|
4
|
+
unless defined?(SPEC_ROOT)
|
5
|
+
SPEC_ROOT = File.expand_path("../", __FILE__)
|
6
|
+
end
|
7
|
+
|
8
|
+
# Add your robo whois api key here if you have one:
|
9
|
+
ROBO_WHOIS_API_KEY = nil
|
10
|
+
|
11
|
+
# Requires supporting ruby files with custom matchers and macros, etc,
|
12
|
+
# in spec/support/ and its subdirectories.
|
13
|
+
Dir[File.join(SPEC_ROOT, "support/**/*.rb")].each { |f| require f }
|
14
|
+
|
15
|
+
VCR.configure do |c|
|
16
|
+
c.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
|
17
|
+
c.hook_into :webmock # or :fakeweb
|
18
|
+
c.ignore_hosts '127.0.0.1', 'localhost'
|
19
|
+
|
20
|
+
if ROBO_WHOIS_API_KEY
|
21
|
+
c.filter_sensitive_data('<ROBO_WHOIS_API_KEY>') { ROBO_WHOIS_API_KEY }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
NameChecker.configure do |config|
|
26
|
+
config.robo_whois_api_key = ROBO_WHOIS_API_KEY if ROBO_WHOIS_API_KEY
|
27
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module RSpecSupportSpecHelpers
|
2
|
+
# Gets the currently described class.
|
3
|
+
# Conversely to +subject+, it returns the class
|
4
|
+
# instead of an instance.
|
5
|
+
def klass
|
6
|
+
described_class
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
RSpec.configure do |config|
|
11
|
+
config.include RSpecSupportSpecHelpers
|
12
|
+
end
|
metadata
ADDED
@@ -0,0 +1,149 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: name_checker
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- David Tuite
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-05-15 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rspec
|
16
|
+
requirement: &70168530643800 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70168530643800
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: vcr
|
27
|
+
requirement: &70168530642960 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70168530642960
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: httparty
|
38
|
+
requirement: &70168530642080 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70168530642080
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: whois
|
49
|
+
requirement: &70168530640740 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70168530640740
|
58
|
+
description: ! ' NameChecker is a Ruby library for checking the availability of
|
59
|
+
a word across various TLDs and social networks. It was created to power http://domiy.com.
|
60
|
+
|
61
|
+
'
|
62
|
+
email:
|
63
|
+
- dtuite@gmail.com
|
64
|
+
executables: []
|
65
|
+
extensions: []
|
66
|
+
extra_rdoc_files: []
|
67
|
+
files:
|
68
|
+
- .gitignore
|
69
|
+
- .rspec
|
70
|
+
- Gemfile
|
71
|
+
- LICENSE
|
72
|
+
- README.md
|
73
|
+
- Rakefile
|
74
|
+
- lib/name_checker.rb
|
75
|
+
- lib/name_checker/availability.rb
|
76
|
+
- lib/name_checker/configuration.rb
|
77
|
+
- lib/name_checker/facebook_checker.rb
|
78
|
+
- lib/name_checker/logging.rb
|
79
|
+
- lib/name_checker/net_checker.rb
|
80
|
+
- lib/name_checker/railties.rb
|
81
|
+
- lib/name_checker/robo_whois_checker.rb
|
82
|
+
- lib/name_checker/twitter_checker.rb
|
83
|
+
- lib/name_checker/version.rb
|
84
|
+
- name_checker.gemspec
|
85
|
+
- spec/fixtures/vcr_cassettes/facebook/available.yml
|
86
|
+
- spec/fixtures/vcr_cassettes/facebook/unavailable.yml
|
87
|
+
- spec/fixtures/vcr_cassettes/facebook/weird_chars.yml
|
88
|
+
- spec/fixtures/vcr_cassettes/robo_whois/available.yml
|
89
|
+
- spec/fixtures/vcr_cassettes/robo_whois/credits.yml
|
90
|
+
- spec/fixtures/vcr_cassettes/robo_whois/unavailable.yml
|
91
|
+
- spec/fixtures/vcr_cassettes/twitter/available.yml
|
92
|
+
- spec/fixtures/vcr_cassettes/twitter/rate_limit.yml
|
93
|
+
- spec/fixtures/vcr_cassettes/twitter/suspended.yml
|
94
|
+
- spec/fixtures/vcr_cassettes/twitter/unavailable.yml
|
95
|
+
- spec/name_checker/availability_spec.rb
|
96
|
+
- spec/name_checker/facebook_checker_spec.rb
|
97
|
+
- spec/name_checker/net_checker_spec.rb
|
98
|
+
- spec/name_checker/robo_whois_checker_spec.rb
|
99
|
+
- spec/name_checker/twitter_checker_spec.rb
|
100
|
+
- spec/name_checker/whois_checker.rb
|
101
|
+
- spec/name_checker/whois_checker_spec.rb
|
102
|
+
- spec/name_checker_spec.rb
|
103
|
+
- spec/spec_helper.rb
|
104
|
+
- spec/support/helpers.rb
|
105
|
+
homepage: ''
|
106
|
+
licenses: []
|
107
|
+
post_install_message:
|
108
|
+
rdoc_options: []
|
109
|
+
require_paths:
|
110
|
+
- lib
|
111
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
112
|
+
none: false
|
113
|
+
requirements:
|
114
|
+
- - ! '>='
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
|
+
none: false
|
119
|
+
requirements:
|
120
|
+
- - ! '>='
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '0'
|
123
|
+
requirements: []
|
124
|
+
rubyforge_project:
|
125
|
+
rubygems_version: 1.8.16
|
126
|
+
signing_key:
|
127
|
+
specification_version: 3
|
128
|
+
summary: Check the availability of a name on various services.
|
129
|
+
test_files:
|
130
|
+
- spec/fixtures/vcr_cassettes/facebook/available.yml
|
131
|
+
- spec/fixtures/vcr_cassettes/facebook/unavailable.yml
|
132
|
+
- spec/fixtures/vcr_cassettes/facebook/weird_chars.yml
|
133
|
+
- spec/fixtures/vcr_cassettes/robo_whois/available.yml
|
134
|
+
- spec/fixtures/vcr_cassettes/robo_whois/credits.yml
|
135
|
+
- spec/fixtures/vcr_cassettes/robo_whois/unavailable.yml
|
136
|
+
- spec/fixtures/vcr_cassettes/twitter/available.yml
|
137
|
+
- spec/fixtures/vcr_cassettes/twitter/rate_limit.yml
|
138
|
+
- spec/fixtures/vcr_cassettes/twitter/suspended.yml
|
139
|
+
- spec/fixtures/vcr_cassettes/twitter/unavailable.yml
|
140
|
+
- spec/name_checker/availability_spec.rb
|
141
|
+
- spec/name_checker/facebook_checker_spec.rb
|
142
|
+
- spec/name_checker/net_checker_spec.rb
|
143
|
+
- spec/name_checker/robo_whois_checker_spec.rb
|
144
|
+
- spec/name_checker/twitter_checker_spec.rb
|
145
|
+
- spec/name_checker/whois_checker.rb
|
146
|
+
- spec/name_checker/whois_checker_spec.rb
|
147
|
+
- spec/name_checker_spec.rb
|
148
|
+
- spec/spec_helper.rb
|
149
|
+
- spec/support/helpers.rb
|