sla 0.1.1 → 0.2.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.
- checksums.yaml +4 -4
- data/README.md +80 -101
- data/bin/sla +7 -1
- data/lib/sla.rb +19 -13
- data/lib/sla/checker.rb +6 -2
- data/lib/sla/command_line.rb +82 -74
- data/lib/sla/docopt.txt +43 -44
- data/lib/sla/exceptions.rb +3 -0
- data/lib/sla/link.rb +1 -1
- data/lib/sla/version.rb +1 -1
- metadata +6 -104
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 20e5f6a05020d9aecc2ad6754a7a22cee70e18f45e3bc5f679daabb2042c749a
|
4
|
+
data.tar.gz: 2d5b0290dd9dd25169bbb89ff20df4aea66db616ea65585a56a982866579f568
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc586125c98e82786f0c747fcdf9d21f45d933564e4aba416036d21a39a70c72bdb974665c8e6a6f5c5b17a4ad323a52bb896205f4e5bb7e49002dd4370b1d84
|
7
|
+
data.tar.gz: 10fadfccf9da8a7b427f6512bfb6365f890dc70cc01646280a5de51aeebee38026942dc78b30e1c5dac9196015e3e9565a804bf13e8c9c3c7c2bed00c9a5ca49
|
data/README.md
CHANGED
@@ -1,101 +1,80 @@
|
|
1
|
-
Site Link Analyzer
|
2
|
-
==================================================
|
3
|
-
|
4
|
-
[](https://badge.fury.io/rb/sla)
|
5
|
-
[](https://travis-ci.com/DannyBen/sla)
|
6
|
-
[](https://codeclimate.com/github/DannyBen/sla/maintainability)
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
--
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
Set the cache directory
|
82
|
-
|
83
|
-
--external
|
84
|
-
Also check external links
|
85
|
-
|
86
|
-
--no-color
|
87
|
-
Disable colors in output
|
88
|
-
|
89
|
-
--no-log
|
90
|
-
Disable logging
|
91
|
-
|
92
|
-
--log LOGFILE
|
93
|
-
Set the name of the logfile [default: sla.log]
|
94
|
-
|
95
|
-
Examples:
|
96
|
-
sla check example.com
|
97
|
-
sla check example.com -c10m -d10
|
98
|
-
sla check example.com --cache-dir my_cache --no-log
|
99
|
-
sla check example.com --depth 10 --log my_log.log
|
100
|
-
sla check example.com --cache 30d
|
101
|
-
```
|
1
|
+
Site Link Analyzer
|
2
|
+
==================================================
|
3
|
+
|
4
|
+
[](https://badge.fury.io/rb/sla)
|
5
|
+
[](https://travis-ci.com/DannyBen/sla)
|
6
|
+
[](https://codeclimate.com/github/DannyBen/sla/maintainability)
|
7
|
+
|
8
|
+
---
|
9
|
+
|
10
|
+
SLA is a simple broken links checker, with built in caching.
|
11
|
+
|
12
|
+

|
13
|
+
|
14
|
+
Install
|
15
|
+
--------------------------------------------------
|
16
|
+
|
17
|
+
```
|
18
|
+
$ gem install sla
|
19
|
+
```
|
20
|
+
|
21
|
+
|
22
|
+
Features
|
23
|
+
--------------------------------------------------
|
24
|
+
|
25
|
+
- Easy to use command line interface.
|
26
|
+
- Built in caching, to avoid overtaxing the server.
|
27
|
+
- Show and save list of broken links to a log file.
|
28
|
+
- Exits with non zero code on failure, for CI integration.
|
29
|
+
|
30
|
+
|
31
|
+
Usage
|
32
|
+
--------------------------------------------------
|
33
|
+
|
34
|
+
```
|
35
|
+
$ sla --help
|
36
|
+
SLA
|
37
|
+
|
38
|
+
Usage:
|
39
|
+
sla check DOMAIN [options]
|
40
|
+
sla (-h|--help|--version)
|
41
|
+
|
42
|
+
Commands:
|
43
|
+
check
|
44
|
+
Start checking for broken links on a given domain.
|
45
|
+
|
46
|
+
Options:
|
47
|
+
--depth, -d DEPTH
|
48
|
+
Set crawling depth [default: 5].
|
49
|
+
|
50
|
+
--cache, -c LIFE
|
51
|
+
Set cache life [default: 1d]. LIFE can be in any of the
|
52
|
+
following formats:
|
53
|
+
10 = 10 seconds
|
54
|
+
20s = 20 seconds
|
55
|
+
10m = 10 minutes
|
56
|
+
10h = 10 hours
|
57
|
+
10d = 10 days
|
58
|
+
|
59
|
+
--cache-dir DIR
|
60
|
+
Set the cache directory.
|
61
|
+
|
62
|
+
--external, -x
|
63
|
+
Also check external links.
|
64
|
+
|
65
|
+
--log, -l LOGFILE
|
66
|
+
Save errors to log file.
|
67
|
+
|
68
|
+
--ignore, -i URLS
|
69
|
+
Specify a list of space delimited URLs to skip.
|
70
|
+
URLs that start with the strings in this list will be skipped.
|
71
|
+
|
72
|
+
Examples:
|
73
|
+
sla check example.com
|
74
|
+
sla check example.com -c10m -d10
|
75
|
+
sla check example.com --cache-dir my_cache
|
76
|
+
sla check example.com --depth 10 --log my_log.log
|
77
|
+
sla check example.com --cache 30d
|
78
|
+
sla check example.com --ignore "/admin /customer/login"
|
79
|
+
|
80
|
+
```
|
data/bin/sla
CHANGED
data/lib/sla.rb
CHANGED
@@ -1,13 +1,19 @@
|
|
1
|
-
require 'webcache'
|
2
|
-
require 'nokogiri'
|
3
|
-
require 'colsole'
|
4
|
-
require 'singleton'
|
5
|
-
require 'super_docopt'
|
6
|
-
require 'uri'
|
7
|
-
|
8
|
-
require 'sla/version'
|
9
|
-
require 'sla/
|
10
|
-
require 'sla/
|
11
|
-
require 'sla/
|
12
|
-
|
13
|
-
|
1
|
+
require 'webcache'
|
2
|
+
require 'nokogiri'
|
3
|
+
require 'colsole'
|
4
|
+
require 'singleton'
|
5
|
+
require 'super_docopt'
|
6
|
+
require 'uri'
|
7
|
+
|
8
|
+
require 'sla/version'
|
9
|
+
require 'sla/exceptions'
|
10
|
+
require 'sla/link'
|
11
|
+
require 'sla/checker'
|
12
|
+
require 'sla/command_line'
|
13
|
+
|
14
|
+
if ENV['BYEBUG']
|
15
|
+
# :nocov:
|
16
|
+
require 'byebug'
|
17
|
+
require 'lp'
|
18
|
+
# :nocov:
|
19
|
+
end
|
data/lib/sla/checker.rb
CHANGED
@@ -2,12 +2,13 @@ module SLA
|
|
2
2
|
class Checker
|
3
3
|
include Colsole
|
4
4
|
|
5
|
-
attr_accessor :max_depth, :checked_links, :check_external
|
5
|
+
attr_accessor :max_depth, :checked_links, :check_external, :ignore
|
6
6
|
|
7
7
|
def initialize
|
8
8
|
@max_depth = 10
|
9
9
|
@checked_links = []
|
10
10
|
@check_external = false
|
11
|
+
@ignore = []
|
11
12
|
end
|
12
13
|
|
13
14
|
def count
|
@@ -17,7 +18,10 @@ module SLA
|
|
17
18
|
def check(link, depth=1, &block)
|
18
19
|
link = Link.new link, depth: depth if link.is_a? String
|
19
20
|
|
20
|
-
return if link.external? &&
|
21
|
+
return if link.external? && !check_external
|
22
|
+
ignore.each do |ignored|
|
23
|
+
return if link.ident.start_with? ignored
|
24
|
+
end
|
21
25
|
|
22
26
|
link.validate
|
23
27
|
yield link if block_given?
|
data/lib/sla/command_line.rb
CHANGED
@@ -1,75 +1,83 @@
|
|
1
|
-
module SLA
|
2
|
-
class CommandLine < SuperDocopt::Base
|
3
|
-
include Colsole
|
4
|
-
|
5
|
-
version VERSION
|
6
|
-
docopt File.expand_path 'docopt.txt', __dir__
|
7
|
-
subcommands ['check']
|
8
|
-
|
9
|
-
def before_execute
|
10
|
-
|
11
|
-
|
12
|
-
end
|
13
|
-
|
14
|
-
def check
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
checker =
|
24
|
-
checker.
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
1
|
+
module SLA
|
2
|
+
class CommandLine < SuperDocopt::Base
|
3
|
+
include Colsole
|
4
|
+
|
5
|
+
version VERSION
|
6
|
+
docopt File.expand_path 'docopt.txt', __dir__
|
7
|
+
subcommands ['check']
|
8
|
+
|
9
|
+
def before_execute
|
10
|
+
WebCache.life = args['--cache']
|
11
|
+
WebCache.dir = args['--cache-dir'] if args['--cache-dir']
|
12
|
+
end
|
13
|
+
|
14
|
+
def check
|
15
|
+
checker = Checker.new
|
16
|
+
checker.max_depth = args['--depth'].to_i
|
17
|
+
logfile = args['--log']
|
18
|
+
start_url = args['DOMAIN']
|
19
|
+
ignore = args['--ignore']
|
20
|
+
ignore = ignore.split " " if ignore
|
21
|
+
screen_width = terminal_width
|
22
|
+
|
23
|
+
checker.check_external = args['--external']
|
24
|
+
checker.ignore = ignore if ignore
|
25
|
+
|
26
|
+
start_url = "http://#{start_url}" unless start_url[0..3] == 'http'
|
27
|
+
|
28
|
+
File.unlink logfile if logfile and File.exist? logfile
|
29
|
+
|
30
|
+
count = 1
|
31
|
+
failed = 0
|
32
|
+
|
33
|
+
log = []
|
34
|
+
|
35
|
+
checker.check start_url do |link|
|
36
|
+
status = link.status
|
37
|
+
colored_status = color_status status
|
38
|
+
if status != '200'
|
39
|
+
failed +=1
|
40
|
+
resay "#{colored_status} #{link.ident}"
|
41
|
+
log.push "#{status} #{link.ident}" if logfile
|
42
|
+
end
|
43
|
+
|
44
|
+
message = "[#{failed}/#{count} @ #{link.depth}] #{status}"
|
45
|
+
remaining_width = screen_width - message.size - 4
|
46
|
+
trimmed_link = link.ident[0..remaining_width]
|
47
|
+
|
48
|
+
resay "[#{failed}/#{count} @ #{link.depth}] #{colored_status} #{trimmed_link} "
|
49
|
+
count += 1
|
50
|
+
|
51
|
+
sleep ENV['SLA_SLEEP'].to_f if ENV['SLA_SLEEP']
|
52
|
+
end
|
53
|
+
|
54
|
+
color = failed > 0 ? '!txtred!' : '!txtgrn!'
|
55
|
+
resay "#{color}Done checking #{count} links with #{failed} failures"
|
56
|
+
|
57
|
+
if logfile
|
58
|
+
logstring = log.join("\n") + "\n"
|
59
|
+
File.write logfile, logstring
|
60
|
+
end
|
61
|
+
|
62
|
+
if failed > 0 and !ENV['SLA_ALLOW_FAILS']
|
63
|
+
raise BrokenLinks
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
private
|
68
|
+
|
69
|
+
def color_status(status)
|
70
|
+
case status
|
71
|
+
when '200'
|
72
|
+
'!txtgrn!200!txtrst!'
|
73
|
+
when '404'
|
74
|
+
'!txtred!404!txtrst!'
|
75
|
+
else
|
76
|
+
# :nocov:
|
77
|
+
status
|
78
|
+
# :nocov:
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
75
83
|
end
|
data/lib/sla/docopt.txt
CHANGED
@@ -1,44 +1,43 @@
|
|
1
|
-
SLA
|
2
|
-
|
3
|
-
Usage:
|
4
|
-
sla check DOMAIN [options]
|
5
|
-
sla (-h|--help|--version)
|
6
|
-
|
7
|
-
Commands:
|
8
|
-
check
|
9
|
-
Start checking for broken links on a given domain
|
10
|
-
|
11
|
-
Options:
|
12
|
-
--depth, -d DEPTH
|
13
|
-
Set crawling depth [default: 5]
|
14
|
-
|
15
|
-
--cache, -c LIFE
|
16
|
-
Set cache life [default: 1d]. LIFE can be in any of the
|
17
|
-
following formats:
|
18
|
-
10 = 10 seconds
|
19
|
-
20s = 20 seconds
|
20
|
-
10m = 10 minutes
|
21
|
-
10h = 10 hours
|
22
|
-
10d = 10 days
|
23
|
-
|
24
|
-
--cache-dir DIR
|
25
|
-
Set the cache directory
|
26
|
-
|
27
|
-
--external
|
28
|
-
Also check external links
|
29
|
-
|
30
|
-
--
|
31
|
-
|
32
|
-
|
33
|
-
--
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
sla check example.com
|
41
|
-
sla check example.com
|
42
|
-
sla check example.com --cache
|
43
|
-
sla check example.com --
|
44
|
-
sla check example.com --cache 30d
|
1
|
+
SLA
|
2
|
+
|
3
|
+
Usage:
|
4
|
+
sla check DOMAIN [options]
|
5
|
+
sla (-h|--help|--version)
|
6
|
+
|
7
|
+
Commands:
|
8
|
+
check
|
9
|
+
Start checking for broken links on a given domain.
|
10
|
+
|
11
|
+
Options:
|
12
|
+
--depth, -d DEPTH
|
13
|
+
Set crawling depth [default: 5].
|
14
|
+
|
15
|
+
--cache, -c LIFE
|
16
|
+
Set cache life [default: 1d]. LIFE can be in any of the
|
17
|
+
following formats:
|
18
|
+
10 = 10 seconds
|
19
|
+
20s = 20 seconds
|
20
|
+
10m = 10 minutes
|
21
|
+
10h = 10 hours
|
22
|
+
10d = 10 days
|
23
|
+
|
24
|
+
--cache-dir DIR
|
25
|
+
Set the cache directory.
|
26
|
+
|
27
|
+
--external, -x
|
28
|
+
Also check external links.
|
29
|
+
|
30
|
+
--log, -l LOGFILE
|
31
|
+
Save errors to log file.
|
32
|
+
|
33
|
+
--ignore, -i URLS
|
34
|
+
Specify a list of space delimited URLs to skip.
|
35
|
+
URLs that start with the strings in this list will be skipped.
|
36
|
+
|
37
|
+
Examples:
|
38
|
+
sla check example.com
|
39
|
+
sla check example.com -c10m -d10
|
40
|
+
sla check example.com --cache-dir my_cache
|
41
|
+
sla check example.com --depth 10 --log my_log.log
|
42
|
+
sla check example.com --cache 30d
|
43
|
+
sla check example.com --ignore "/admin /customer/login"
|
data/lib/sla/link.rb
CHANGED
data/lib/sla/version.rb
CHANGED
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.
|
4
|
+
version: 0.2.0
|
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:
|
11
|
+
date: 2019-12-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colsole
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
19
|
+
version: '0.7'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0.
|
26
|
+
version: '0.7'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: super_docopt
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,104 +66,6 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.8'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: runfile
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0.10'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0.10'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: adsf
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '1.2'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '1.2'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: runfile-tasks
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0.4'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0.4'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: byebug
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - "~>"
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '10.0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - "~>"
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '10.0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: rspec
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - "~>"
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '3.7'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - "~>"
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '3.7'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: rspec_fixtures
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - "~>"
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '0.4'
|
146
|
-
type: :development
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - "~>"
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '0.4'
|
153
|
-
- !ruby/object:Gem::Dependency
|
154
|
-
name: simplecov
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
156
|
-
requirements:
|
157
|
-
- - "~>"
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: '0.16'
|
160
|
-
type: :development
|
161
|
-
prerelease: false
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
163
|
-
requirements:
|
164
|
-
- - "~>"
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: '0.16'
|
167
69
|
description: Check for broken links on a website
|
168
70
|
email: db@dannyben.com
|
169
71
|
executables:
|
@@ -177,6 +79,7 @@ files:
|
|
177
79
|
- lib/sla/checker.rb
|
178
80
|
- lib/sla/command_line.rb
|
179
81
|
- lib/sla/docopt.txt
|
82
|
+
- lib/sla/exceptions.rb
|
180
83
|
- lib/sla/link.rb
|
181
84
|
- lib/sla/version.rb
|
182
85
|
homepage: https://github.com/DannyBen/sla
|
@@ -198,8 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
198
101
|
- !ruby/object:Gem::Version
|
199
102
|
version: '0'
|
200
103
|
requirements: []
|
201
|
-
|
202
|
-
rubygems_version: 2.7.6
|
104
|
+
rubygems_version: 3.0.3
|
203
105
|
signing_key:
|
204
106
|
specification_version: 4
|
205
107
|
summary: Command Line Site Link Analyzer
|