gem-firewall 0.0.6 → 0.0.7

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