blockhosts 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: 3410bf876c4374350ebfe70a76a7f88d3e7575017972acf8843f08d9c3c85488
4
- data.tar.gz: 73e2f8780d1c634f961a1940c0709f30d7e198e28d6069b76e28984229ffe1ed
3
+ metadata.gz: 40724e7916a86388c65a9edf705d05ffbf796b27702f4ed03639d17cc9dda8e4
4
+ data.tar.gz: 2ef36ae952b23b74294d48347e6aca9ff777c7e661f9b43221883869013b1c7c
5
5
  SHA512:
6
- metadata.gz: 4aa7d87eee37c39784fa31444300016e8fb16f0455cdcd4fa5ee361bc30f8ceea5e6c405af55f1b9b4a4f8d6b8e43f4e7a93e6fa2b7b5205b1bc3295635aaf26
7
- data.tar.gz: 9ef3feafd803acee6a6cab23efd18eeb776277740c2e55dbb9d59b00b2fb80015a172a4d5125213ed89a4d8c76d38359958490b3397f0d7cca5e2f646074e8e6
6
+ metadata.gz: e2ff940762b4f739729c0d0d87702cfeed125207671418be58103bdca2cb5afc6a2906661a7f744579f5e7f8ef61438d1f4626499921ee4d9de0be6513fc4050
7
+ data.tar.gz: 0c398104cdbafb9ec82cb4d94161d89df425a83c9da59893540ac9dff44b22817c23590105a2b84bdc94092ee3946a435fb7d8016e4dda05830fa388a4d87630
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/blockhosts.rb CHANGED
@@ -3,6 +3,8 @@
3
3
  # file: blockhosts.rb
4
4
 
5
5
 
6
+ require 'rxfhelper'
7
+
6
8
  class Host
7
9
 
8
10
  @ip = '127.0.0.1'
@@ -16,25 +18,53 @@ class Host
16
18
  '/etc/hosts'
17
19
  end
18
20
 
19
- def self.add(hostname)
20
- s = "#{@ip} #{hostname}"
21
+ def self.add(hostname, banlist=nil,
22
+ hashtag=hostname.sub(/^www./,'').gsub('-','').gsub('.','dot'))
23
+
24
+ s = if banlist then
25
+
26
+ hashtag = hostname.sub(/^#/,'')
27
+ list, _ = RXFHelper.read(banlist)
28
+ list.lines.map {|hostx| "#{@ip} #{hostx.chomp} ##{hashtag}" }.join("\n")
29
+
30
+ else
31
+ "#{@ip} #{hostname} ##{hashtag}"
32
+ end
33
+
21
34
  open(@file, 'a') { |f| f.puts s } unless File.read(@file).include? hostname
22
35
  end
23
36
 
24
- def self.disable(hostname)
25
- modify() {|s| s.sub(/^#(#{@ip}\s+#{hostname}[^$]+)$/,'\1')}
37
+ def self.disable(hashtag)
38
+
39
+ modify() do |line|
40
+ line.gsub(/^#([^#]+##{hashtag.sub(/^#/,'')}[^$]+$)/,'\1')
41
+ end
42
+
26
43
  end
27
44
 
28
- def self.enable(hostname)
29
- modify() {|s| s.sub(/^(#{@ip}\s+#{hostname}[^$]+)$/,'#\1')}
45
+ def self.enable(hashtag)
46
+
47
+ modify() do |line|
48
+
49
+ if line[0] == '#' then
50
+ line
51
+ else
52
+ line.gsub(/^([^^]+##{hashtag.sub(/^#/,'')}[^$]+$)/,'#\1')
53
+ end
54
+
55
+ end
56
+
30
57
  end
58
+
59
+ def self.block(hashtag) self.disable(hashtag) end
60
+ def self.unblock(hashtag) self.enable(hashtag) end
31
61
 
32
62
  def self.modify()
33
63
 
34
64
  return unless block_given?
35
65
 
36
66
  s = File.read(@file)
37
- s2 = yield(s)
67
+ s2 = s.lines.map {|x| yield(x)}.join
38
68
  File.write(@file, s2) unless s == s2
39
69
 
40
70
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blockhosts
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
  - James Robertson
metadata.gz.sig CHANGED
Binary file