sitediff 0.0.1 → 0.0.2
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/bin/sitediff +1 -1
- data/lib/sitediff.rb +79 -63
- data/lib/sitediff/cache.rb +61 -0
- data/lib/sitediff/cli.rb +144 -23
- data/lib/sitediff/config.rb +46 -9
- data/lib/sitediff/config/creator.rb +122 -0
- data/lib/sitediff/crawler.rb +95 -0
- data/lib/sitediff/diff.rb +2 -1
- data/lib/sitediff/exception.rb +3 -0
- data/lib/sitediff/fetch.rb +55 -0
- data/lib/sitediff/files/html_report.html.erb +20 -4
- data/lib/sitediff/files/rules/drupal.yaml +33 -0
- data/lib/sitediff/files/sidebyside.html.erb +13 -0
- data/lib/sitediff/files/sitediff.css +11 -0
- data/lib/sitediff/result.rb +12 -9
- data/lib/sitediff/rules.rb +65 -0
- data/lib/sitediff/sanitize.rb +163 -168
- data/lib/sitediff/sanitize/dom_transform.rb +92 -0
- data/lib/sitediff/sanitize/regexp.rb +56 -0
- data/lib/sitediff/uriwrapper.rb +19 -7
- data/lib/sitediff/webserver.rb +82 -0
- data/lib/sitediff/webserver/resultserver.rb +98 -0
- metadata +70 -25
- checksums.yaml +0 -7
- data/lib/sitediff/util/cache.rb +0 -32
- data/lib/sitediff/util/webserver.rb +0 -77
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 1dc3a624b91cd4b7ef1c926116630cd795532024
|
4
|
-
data.tar.gz: e49f227ae303f574b704ffe3a226f79a120ae30f
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 90ca5508b834d32ac7c96aa6a94a6aa8488921e978e76890e142b1249da20bc620ddcfa237f3defc1e6928d83dd0a22583c9dded150855c320f94140e1bffdf1
|
7
|
-
data.tar.gz: 24bf7969b6f17c269bb407d1ff1684f6556318d0cfa7c6c92a8327ddd0d86ee4f153778affa4d1ef115e47a3b69b31b4dac5f01ed8b7f464a05fd98f9f98212b
|
data/lib/sitediff/util/cache.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
class SiteDiff
|
2
|
-
module Util
|
3
|
-
# A typhoeus cache, backed by DBM
|
4
|
-
class Cache
|
5
|
-
def initialize(file)
|
6
|
-
# Default to GDBM, if we have it, we don't want pag/dir files
|
7
|
-
begin
|
8
|
-
require 'gdbm'
|
9
|
-
@dbm = GDBM.new(file)
|
10
|
-
rescue LoadError
|
11
|
-
require 'dbm'
|
12
|
-
@dbm = DBM.new(file)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
# Older Typhoeus doesn't have cache_key
|
17
|
-
def cache_key(req)
|
18
|
-
return req.cache_key if req.respond_to?(:cache_key)
|
19
|
-
return Marshal.dump([req.base_url, req.options])
|
20
|
-
end
|
21
|
-
|
22
|
-
def get(req)
|
23
|
-
resp = @dbm[cache_key(req)] or return nil
|
24
|
-
Marshal.load(resp)
|
25
|
-
end
|
26
|
-
|
27
|
-
def set(req, resp)
|
28
|
-
@dbm[cache_key(req)] = Marshal.dump(resp)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
@@ -1,77 +0,0 @@
|
|
1
|
-
require 'webrick'
|
2
|
-
|
3
|
-
class SiteDiff
|
4
|
-
module Util
|
5
|
-
# Simple webserver for testing purposes
|
6
|
-
class Webserver
|
7
|
-
DEFAULT_PORT = 13080
|
8
|
-
|
9
|
-
attr_accessor :ports
|
10
|
-
|
11
|
-
# Serve a list of directories
|
12
|
-
def initialize(start_port, dirs, params = {})
|
13
|
-
start_port ||= DEFAULT_PORT
|
14
|
-
@ports = (start_port...(start_port + dirs.size)).to_a
|
15
|
-
|
16
|
-
if params[:announce]
|
17
|
-
puts "Serving at #{uris.join(", ")}"
|
18
|
-
end
|
19
|
-
|
20
|
-
opts = {}
|
21
|
-
if params[:quiet]
|
22
|
-
opts[:Logger] = WEBrick::Log.new(IO::NULL)
|
23
|
-
opts[:AccessLog] = []
|
24
|
-
end
|
25
|
-
|
26
|
-
@threads = []
|
27
|
-
dirs.each_with_index do |dir, idx|
|
28
|
-
opts[:Port] = @ports[idx]
|
29
|
-
opts[:DocumentRoot] = dir
|
30
|
-
server = WEBrick::HTTPServer.new(opts)
|
31
|
-
@threads << Thread.new { server.start }
|
32
|
-
end
|
33
|
-
|
34
|
-
if block_given?
|
35
|
-
yield self
|
36
|
-
kill
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def kill
|
41
|
-
@threads.each { |t| t.kill }
|
42
|
-
end
|
43
|
-
|
44
|
-
def wait
|
45
|
-
@threads.each { |t| t.join }
|
46
|
-
end
|
47
|
-
|
48
|
-
def uris
|
49
|
-
ports.map { |p| "http://localhost:#{p}" }
|
50
|
-
end
|
51
|
-
|
52
|
-
|
53
|
-
# Helper to serve one dir
|
54
|
-
def self.serve(port, dir, params = {})
|
55
|
-
new(port, [dir], params)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
class FixtureServer < Webserver
|
60
|
-
PORT = DEFAULT_PORT + 1
|
61
|
-
BASE = 'spec/fixtures/ruby-doc.org'
|
62
|
-
NAMES = %w[core-1.9.3 core-2.0]
|
63
|
-
|
64
|
-
def initialize(port = PORT, base = BASE, names = NAMES)
|
65
|
-
dirs = names.map { |n| File.join(base, n) }
|
66
|
-
super(port, dirs, :quiet => true)
|
67
|
-
end
|
68
|
-
|
69
|
-
def before
|
70
|
-
uris.first
|
71
|
-
end
|
72
|
-
def after
|
73
|
-
uris.last
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|