peeping_tom 0.4 → 0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/peeping_tom/dsl.rb +13 -10
- metadata +2 -2
data/lib/peeping_tom/dsl.rb
CHANGED
@@ -4,12 +4,15 @@ require 'uri'
|
|
4
4
|
|
5
5
|
module PeepingTom
|
6
6
|
module DSL
|
7
|
-
def ping(site)
|
7
|
+
def ping(site, method = :head)
|
8
|
+
method = method.to_s.downcase
|
9
|
+
raise ArgumentError, "only accepts head or get" unless ['head', 'get'].include?(method)
|
10
|
+
|
8
11
|
Timeout::timeout(site.timeout) do
|
9
12
|
url = URI.parse(site.url)
|
10
13
|
res = Net::HTTP.start(url.host, url.port) do |http|
|
11
14
|
file = "/" + url.to_s.sub(/http:\/\/.*?\//, '')
|
12
|
-
|
15
|
+
http.send(method, file)
|
13
16
|
end
|
14
17
|
return res.code.to_i >= 200 && res.code.to_i < 400
|
15
18
|
end
|
@@ -17,11 +20,11 @@ module PeepingTom
|
|
17
20
|
rescue Timeout::Error, Errno::ECONNREFUSED, SocketError
|
18
21
|
return error!
|
19
22
|
end
|
20
|
-
|
23
|
+
|
21
24
|
def channels
|
22
25
|
@channels
|
23
26
|
end
|
24
|
-
|
27
|
+
|
25
28
|
def watch(name)
|
26
29
|
PeepingTom.peeper(name).sites.each_value do |site|
|
27
30
|
@error = false
|
@@ -32,29 +35,29 @@ module PeepingTom
|
|
32
35
|
end
|
33
36
|
end
|
34
37
|
end
|
35
|
-
|
38
|
+
|
36
39
|
def errors
|
37
40
|
return unless @errors
|
38
41
|
yield
|
39
42
|
end
|
40
|
-
|
43
|
+
|
41
44
|
def no_errors
|
42
45
|
return if @errors
|
43
46
|
yield
|
44
47
|
end
|
45
|
-
|
48
|
+
|
46
49
|
def error!
|
47
50
|
@error = true
|
48
51
|
@errors = true
|
49
52
|
return false
|
50
53
|
end
|
51
|
-
|
54
|
+
|
52
55
|
def group(name, &block)
|
53
56
|
PeepingTom.set_peeper(name)
|
54
57
|
yield
|
55
58
|
PeepingTom.reset_peeper
|
56
59
|
end
|
57
|
-
|
60
|
+
|
58
61
|
def channel(type, *opts)
|
59
62
|
if type == :irc
|
60
63
|
require File.join(File.dirname(__FILE__), "notifier", "irc")
|
@@ -68,7 +71,7 @@ module PeepingTom
|
|
68
71
|
@channels ||= []
|
69
72
|
@channels << channel
|
70
73
|
end
|
71
|
-
|
74
|
+
|
72
75
|
def site(name, site, opts = {})
|
73
76
|
PeepingTom.peeper.register(name, site, opts)
|
74
77
|
end
|