github-pages-health-check 0.5.3 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6ef63bec86a31b05e0155b7d329fe07db3a5f551
4
- data.tar.gz: ffd1fc33ab713437823c8ed406a5128c7d2047e2
3
+ metadata.gz: dc104a3e85a562941afc89753b65de400d5a6246
4
+ data.tar.gz: 10fb769dbd57e8b8278844f868aa4971d40d01eb
5
5
  SHA512:
6
- metadata.gz: 33f9bd1b69e92f3b61e7f6757a06bce975691ba037f03560e6538eccf6b2517de0d500e8cb342a1125c85f980ff3441cf2ed0fc1c4cf77de6babf0f7b4985ebc
7
- data.tar.gz: 614131b277cea29a033ab26e64293662746d4c9a67c7b7e9daf09a31632a80a04211e52cf37c15bbdfeeee8459886876f218c64e9d4f218a090900f47575b19e
6
+ metadata.gz: 32a30fe370423c66e54c3562c0be938ccd9f619c6dc3103cfa3d03a757ee70514db57fef3a4e0ae43f484a30031adfeee334336d5cfaf1ba1cf029abc7b68a23
7
+ data.tar.gz: 071289ad2331dfaf1aaf2e52a96dbf6fe15083e97b5ffc6c27f1b49a3d05213c6e11831a7c765366a22cdce0af5d0f97ea6cc243220b66aac7ebd7833902a642
@@ -11,4 +11,4 @@
11
11
  190.93.240.0/20
12
12
  197.234.240.0/22
13
13
  198.41.128.0/17
14
- 199.27.128.0/21
14
+ 199.27.128.0/21
@@ -5,8 +5,9 @@ require "ipaddr"
5
5
  require "public_suffix"
6
6
  require "singleton"
7
7
  require "net/http"
8
- require 'typhoeus'
9
- require 'timeout'
8
+ require "typhoeus"
9
+ require "resolv"
10
+ require "timeout"
10
11
  require_relative "github-pages-health-check/version"
11
12
  require_relative "github-pages-health-check/cloudflare"
12
13
  require_relative "github-pages-health-check/error"
@@ -114,11 +115,15 @@ class GitHubPages
114
115
  PublicSuffix.valid? domain
115
116
  end
116
117
 
117
- # Is this domain an SLD, meaning a CNAME would be innapropriate
118
+ # Is this domain an apex domain, meaning a CNAME would be innapropriate
118
119
  def apex_domain?
119
- PublicSuffix.parse(domain).trd == nil
120
- rescue
121
- false
120
+ return @apex_domain if defined?(@apex_domain)
121
+
122
+ answers = Resolv::DNS.open { |dns|
123
+ dns.getresources(absolute_domain, Resolv::DNS::Resource::IN::NS)
124
+ }
125
+
126
+ @apex_domain = answers.any?
122
127
  end
123
128
 
124
129
  # Should the domain be an apex record?
@@ -171,7 +176,8 @@ class GitHubPages
171
176
  alias_method :to_h, :to_hash
172
177
 
173
178
  def served_by_pages?
174
- if @served_by_pages.nil?
179
+ return @served_by_pages if defined? @served_by_pages
180
+ @served_by_pages = begin
175
181
  response = Typhoeus.head(uri, TYPHOEUS_OPTIONS)
176
182
  # Workaround for webmock not playing nicely with Typhoeus redirects
177
183
  # See https://github.com/bblimke/webmock/issues/237
@@ -179,9 +185,12 @@ class GitHubPages
179
185
  response = Typhoeus.head(response.headers["Location"], TYPHOEUS_OPTIONS)
180
186
  end
181
187
 
182
- @served_by_pages = (response.mock? || response.return_code == :ok) && response.headers["Server"] == "GitHub.com"
188
+ return false unless response.mock? || response.return_code == :ok
189
+ return true if response.headers["Server"] == "GitHub.com"
190
+
191
+ # Typhoeus mangles the case of the header, compare insensitively
192
+ response.headers.any? { |k,v| k =~ /X-GitHub-Request-Id/i }
183
193
  end
184
- @served_by_pages
185
194
  end
186
195
 
187
196
  def to_json
@@ -1,5 +1,5 @@
1
1
  class GitHubPages
2
2
  class HealthCheck
3
- VERSION = "0.5.3"
3
+ VERSION = "0.6.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: github-pages-health-check
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-04 00:00:00.000000000 Z
11
+ date: 2016-01-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-dns
@@ -159,8 +159,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
159
159
  version: '0'
160
160
  requirements: []
161
161
  rubyforge_project:
162
- rubygems_version: 2.2.2
162
+ rubygems_version: 2.5.1
163
163
  signing_key:
164
164
  specification_version: 4
165
165
  summary: Checks your GitHub Pages site for commons DNS configuration issues
166
166
  test_files: []
167
+ has_rdoc: