Class: WEBrickNIO::ListBlock
- Defined in:
- lib/webricknio/block.rb
Overview
Blocks IPs that are exact match
Class Method Summary collapse
Instance Method Summary collapse
- #add_ip(ip) ⇒ Object
- #block_ip?(ip) ⇒ Boolean
-
#initialize(options = {}) ⇒ ListBlock
constructor
A new instance of ListBlock.
- #to_s ⇒ Object
- #to_yaml(opts = {}) ⇒ Object
- #valid?(ip) ⇒ Boolean
Methods inherited from BaseBlock
Constructor Details
#initialize(options = {}) ⇒ ListBlock
Returns a new instance of ListBlock.
187 188 189 190 |
# File 'lib/webricknio/block.rb', line 187 def initialize( = {}) @block_list = ["block_list"] || java.util.concurrent.ConcurrentSkipListSet.new super end |
Class Method Details
.from_array(arr) ⇒ Object
192 193 194 195 196 197 198 |
# File 'lib/webricknio/block.rb', line 192 def self.from_array(arr) blocker = self.new arr.each do |item| blocker.add_ip item.to_s end unless arr.nil? blocker end |
Instance Method Details
#add_ip(ip) ⇒ Object
213 214 215 216 217 218 219 220 221 |
# File 'lib/webricknio/block.rb', line 213 def add_ip(ip) return false if ip.nil? || ip.strip.length == 0 if valid? ip @block_list.add ip true else false end end |
#block_ip?(ip) ⇒ Boolean
200 201 202 203 204 205 206 207 |
# File 'lib/webricknio/block.rb', line 200 def block_ip?(ip) if @block_list.include? ip @logger.info "ip matches: ListBlock - #{ip}" true else false end end |
#to_s ⇒ Object
231 232 233 |
# File 'lib/webricknio/block.rb', line 231 def to_s "ListBlock<#{object_id}>:#{@block_list.to_a}" end |
#to_yaml(opts = {}) ⇒ Object
223 224 225 226 227 228 229 |
# File 'lib/webricknio/block.rb', line 223 def to_yaml( opts = {} ) YAML.quick_emit( nil, opts ) { |out| out.map("!IPBlockerListBlock,1234/ListBlock" ) { |map| map.add("block_list", @block_list.to_a) } } end |
#valid?(ip) ⇒ Boolean
209 210 211 |
# File 'lib/webricknio/block.rb', line 209 def valid?(ip) ip.split(".").size > 3 end |