gem-firewall 0.0.6 → 0.0.7

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
  SHA1:
3
- metadata.gz: 212cc75989d7c42720f2b20f4ca5b3909667d20e
4
- data.tar.gz: b08472fadd74a539fedf15d083b06b6219251d22
3
+ metadata.gz: 10538f049bdf3b5bb0ca3171ee3c1db4458d136e
4
+ data.tar.gz: 75de8d77276e7861293129a904c6324c55da6272
5
5
  SHA512:
6
- metadata.gz: f81cfb5d72f334dd2ecb71b531163b97e4a511f17043e005c674abed510769d1570f684bb37f92b896df698da44f2d0423765177f6298216d1925ef53c1b5d26
7
- data.tar.gz: 5f313f93cc99ad51ecf26c175591b4e56b9c2758b6c0b911ddb4f1437458cd4911da4c31a7cae497a8dd967d8c91cc2b51297ddd3833c43a2cdaa06e690d47fd
6
+ metadata.gz: 1f4ca85a3debfd05e87f8d157fd5c6c201c63ab4fb0ed39014e8ce3db48dc653f6c618f3993fe68bfc966814f53910c5321ee66a66483567bd5ac54ad265d4ee
7
+ data.tar.gz: 9e468862086d1f8e280425a5213b7341a988977f59bd2ec95ce7a9ed9c0e1d2dab1fc43f6a0e17e2f33d3e62f0b7ecedd9620448f61b5116cbfb572210e628b9
data/README.md CHANGED
@@ -63,6 +63,17 @@ fw.allowed?("192.168.1.1", true) # true
63
63
  fw.allowed?("192.168.1.1", false) # false
64
64
  ```
65
65
 
66
+ or
67
+
68
+ ```
69
+ fw = Firewall::Firewall.new(false)
70
+ r = Firewall::ComplexRule.new("192.168.1.1", true, {value: true})
71
+ fw.add_rule(r)
72
+
73
+ fw.allowed?("192.168.1.1", true) # true
74
+ fw.allowed?("192.168.1.1", false) # false
75
+ ```
76
+
66
77
  ## Contributing
67
78
 
68
79
  1. Fork it ( https://github.com/davidterranova/firewall/fork )
@@ -1,16 +1,19 @@
1
1
  module Firewall
2
2
  class ComplexRule < Rule
3
3
 
4
- def initialize(ip, allowed, check = {delegate: nil, method: nil})
4
+ def initialize(ip, allowed, check = {delegate: nil, method: nil, value: nil})
5
5
  super(ip, allowed)
6
6
  @delegate = check[:delegate]
7
7
  @method = check[:method]
8
+ @value = check[:value]
8
9
  end
9
10
 
10
11
  def pass?(ip, value = nil)
11
12
  pass = false
12
13
  if @delegate
13
14
  pass = (super(ip) and (value == @delegate.send(@method)))
15
+ elsif @value
16
+ pass = (super(ip) and (value == @value))
14
17
  else
15
18
  pass = super(ip)
16
19
  end
@@ -1,3 +1,3 @@
1
1
  module Firewall
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -51,5 +51,13 @@ class ComplexRuleTest < Minitest::Unit::TestCase
51
51
  assert_equal r1.pass?(ip2), false
52
52
  end
53
53
 
54
+ def test_complex_rule_with_value
55
+ ip = "192.168.1.10/24"
56
+
57
+ r1 = Firewall::ComplexRule.new(ip, true, {value: 'value'})
58
+ assert_equal r1.pass?(ip, 'value'), true
59
+ assert_equal r1.pass?(ip, 'plop'), false
60
+ end
61
+
54
62
 
55
63
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gem-firewall
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Terranova David