sla 0.1.0 → 0.1.1

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
  SHA256:
3
- metadata.gz: b2386d0336692da6157107b87b0081817fb6aafbe49d8f6fd0d3c5208c19b494
4
- data.tar.gz: a84d08512cb4d0846d94d2dc642d8d0d530a909d8d97f523366d0de76b6cfa16
3
+ metadata.gz: 79b603ee409c9bb9d7846dfd6d843496f961bd91edb04a4186c4ba3629ab9d2e
4
+ data.tar.gz: 9d7b4862e1878354cf0dca9a62be98ad2db8b9f3aece306bb1ffdc439f27451d
5
5
  SHA512:
6
- metadata.gz: ad0e188819fbb9a65ce963ab415c4513ff00d7f44f229f326afec1c67c25ae68da69280f3246b86c741a0453ffd270be837526babd557a65bcb88399029a30d2
7
- data.tar.gz: cd2b97203840e2a700b6b71d36c752d4d06865b5879d9459ab22d82aca38c44a67fbbdc48ed59ad34c93212e33a9f4057be4c380ee32938c2c446cdd905727f1
6
+ metadata.gz: 9ed2eba3bb08b65766d7ef2246219f95271b44501e7a0085123427c33a4d8598bc1495d796a8aea5bd0e547a8266cc650bd500c539e0afb2ad8093ee4c67bfca
7
+ data.tar.gz: bb9da599ff06fe917615d039086a51bd54070b8f80aa3785a02db6a09fe70921080d388ba27004763d42090667bbbb4b77ecab3a61ac8128d2e90952d61d9b15
data/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  Site Link Analyzer
2
2
  ==================================================
3
3
 
4
- [![Gem](https://img.shields.io/gem/v/sla.svg?style=flat-square)](https://rubygems.org/gems/sla)
5
- [![Build](https://img.shields.io/travis/DannyBen/sla.svg?style=flat-square)](https://travis-ci.org/DannyBen/sla)
4
+ [![Gem Version](https://badge.fury.io/rb/sla.svg)](https://badge.fury.io/rb/sla)
5
+ [![Build Status](https://travis-ci.com/DannyBen/sla.svg?branch=master)](https://travis-ci.com/DannyBen/sla)
6
6
  [![Maintainability](https://api.codeclimate.com/v1/badges/f78192aead8a74535a24/maintainability)](https://codeclimate.com/github/DannyBen/sla/maintainability)
7
- [![Dependencies](https://img.shields.io/gemnasium/DannyBen/sla.svg?style=flat-square)](https://gemnasium.com/DannyBen/sla)
7
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/f78192aead8a74535a24/test_coverage)](https://codeclimate.com/github/DannyBen/sla/test_coverage)
8
8
 
9
9
  ---
10
10
 
data/bin/sla CHANGED
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'sla'
4
- SLA::CommandLine.instance.execute ARGV
4
+ SLA::CommandLine.execute ARGV
@@ -1,34 +1,28 @@
1
1
  module SLA
2
- class CommandLine
3
- include Singleton
2
+ class CommandLine < SuperDocopt::Base
4
3
  include Colsole
5
4
 
6
- def execute(argv=[])
7
- doc = File.read File.dirname(__FILE__) + '/docopt.txt'
8
- begin
9
- args = Docopt::docopt(doc, argv: argv, version: VERSION)
10
- handle args
11
- rescue Docopt::Exit => e
12
- puts e.message
13
- end
14
- end
5
+ version VERSION
6
+ docopt File.expand_path 'docopt.txt', __dir__
7
+ subcommands ['check']
15
8
 
16
- private
9
+ def before_execute
10
+ @no_color = args['--no-color']
11
+ @no_log = args['--no-log']
12
+ end
17
13
 
18
- def handle(args)
19
- if args['check']
20
- @no_color = args['--no-color']
21
- @no_log = args['--no-log']
22
- check_domain args
14
+ def check
15
+ # :nocov:
16
+ if !$cache
17
+ $cache ||= WebCache.new
18
+ $cache.life = args['--cache']
19
+ $cache.dir = args['--cache-dir'] if args['--cache-dir']
23
20
  end
24
- end
21
+ # :nocov:
25
22
 
26
- def check_domain(args)
27
23
  checker = Checker.new
28
24
  checker.max_depth = args['--depth'].to_i
29
25
  checker.check_external = args['--external']
30
- Cache.settings.life = Cache.life_to_seconds args['--cache']
31
- Cache.settings.dir = args['--cache-dir'] if args['--cache-dir']
32
26
  logfile = args['--log']
33
27
  start_url = args['DOMAIN']
34
28
 
@@ -61,6 +55,8 @@ module SLA
61
55
  File.write logfile, log.join("\n") unless @no_log
62
56
  end
63
57
 
58
+ private
59
+
64
60
  def color_status(status)
65
61
  return status if @no_color
66
62
  # :nocov:
data/lib/sla/link.rb CHANGED
@@ -4,10 +4,10 @@ module SLA
4
4
  attr_reader :parent
5
5
 
6
6
  def initialize(href, opts={})
7
- @href = href
8
- @text = opts[:text]
9
- @depth = opts[:depth] || 1
10
- self.parent = opts[:parent] || @href
7
+ @href = href
8
+ @text = opts[:text]
9
+ @depth = opts[:depth] || 1
10
+ self.parent = opts[:parent] || @href
11
11
  end
12
12
 
13
13
  def valid?
@@ -24,9 +24,9 @@ module SLA
24
24
  end
25
25
 
26
26
  def content!
27
- response = Cache.get url
28
- self.status = response.error ? '404' : '200'
29
- self.real_uri = response.base_uri
27
+ response = $cache.get url
28
+ @status = response.error ? '404' : '200'
29
+ @real_uri = response.base_uri
30
30
  response.content
31
31
  end
32
32
 
@@ -47,7 +47,7 @@ module SLA
47
47
  end
48
48
 
49
49
  def sublinks!
50
- anchors = doc.css('a')
50
+ anchors = doc.css('a[href]')
51
51
  result = []
52
52
  anchors.each do |a|
53
53
  link = Link.new a['href'], text: a.text, parent: real_uri, depth: depth+1
data/lib/sla/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module SLA
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/lib/sla.rb CHANGED
@@ -2,11 +2,12 @@ require 'webcache'
2
2
  require 'nokogiri'
3
3
  require 'colsole'
4
4
  require 'singleton'
5
- require 'docopt'
5
+ require 'super_docopt'
6
6
  require 'uri'
7
7
 
8
8
  require 'sla/version'
9
9
  require 'sla/link'
10
10
  require 'sla/checker'
11
11
  require 'sla/command_line'
12
- require 'sla/cache'
12
+
13
+ require 'byebug' if ENV['BYEBUG']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sla
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Ben Shitrit
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-26 00:00:00.000000000 Z
11
+ date: 2018-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colsole
@@ -25,33 +25,33 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.5'
27
27
  - !ruby/object:Gem::Dependency
28
- name: docopt
28
+ name: super_docopt
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.6'
33
+ version: '0.1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.6'
40
+ version: '0.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: webcache
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.3'
47
+ version: '0.4'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.3'
54
+ version: '0.4'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: nokogiri
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '9.1'
117
+ version: '10.0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '9.1'
124
+ version: '10.0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rspec
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -142,28 +142,28 @@ dependencies:
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '0.2'
145
+ version: '0.4'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '0.2'
152
+ version: '0.4'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: simplecov
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: '0.15'
159
+ version: '0.16'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: '0.15'
166
+ version: '0.16'
167
167
  description: Check for broken links on a website
168
168
  email: db@dannyben.com
169
169
  executables:
@@ -174,7 +174,6 @@ files:
174
174
  - README.md
175
175
  - bin/sla
176
176
  - lib/sla.rb
177
- - lib/sla/cache.rb
178
177
  - lib/sla/checker.rb
179
178
  - lib/sla/command_line.rb
180
179
  - lib/sla/docopt.txt
@@ -192,7 +191,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
192
191
  requirements:
193
192
  - - ">="
194
193
  - !ruby/object:Gem::Version
195
- version: 2.2.2
194
+ version: 2.4.0
196
195
  required_rubygems_version: !ruby/object:Gem::Requirement
197
196
  requirements:
198
197
  - - ">="
@@ -200,7 +199,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
200
199
  version: '0'
201
200
  requirements: []
202
201
  rubyforge_project:
203
- rubygems_version: 2.7.3
202
+ rubygems_version: 2.7.6
204
203
  signing_key:
205
204
  specification_version: 4
206
205
  summary: Command Line Site Link Analyzer
data/lib/sla/cache.rb DELETED
@@ -1,40 +0,0 @@
1
- module SLA
2
- class Cache
3
- include Singleton
4
-
5
- def self.get(url)
6
- instance.cache.get url
7
- end
8
-
9
- def self.settings
10
- instance.cache
11
- end
12
-
13
- def self.life_to_seconds(arg)
14
- case arg[-1]
15
- when 's'
16
- arg[0..-1].to_i
17
- when 'm'
18
- arg[0..-1].to_i * 60
19
- when 'h'
20
- arg[0..-1].to_i * 60 * 60
21
- when 'd'
22
- arg[0..-1].to_i * 60 * 60 * 24
23
- else
24
- arg.to_i
25
- end
26
- end
27
-
28
- def cache
29
- @cache ||= cache!
30
- end
31
-
32
- private
33
-
34
- def cache!
35
- result = WebCache.new
36
- result.life = 60 * 60 * 24 # 24 hours
37
- result
38
- end
39
- end
40
- end