blockhosts 0.1.0 → 0.1.1

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 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