Class: Vash
- Inherits:
-
Hash
- Object
- Hash
- Vash
- Defined in:
- lib/logstash/codecs/IPFIX/util.rb
Overview
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, *args) ⇒ Object
- #cleanup! ⇒ Object
- #clear(key) ⇒ Object
-
#initialize(constructor = {}) ⇒ Vash
constructor
A new instance of Vash.
- #merge(hsh) ⇒ Object
- #regular_reader ⇒ Object
- #regular_writer ⇒ Object
Constructor Details
#initialize(constructor = {}) ⇒ Vash
Returns a new instance of Vash.
131 132 133 134 135 136 137 138 139 |
# File 'lib/logstash/codecs/IPFIX/util.rb', line 131 def initialize(constructor = {}) @register ||= {} if constructor.is_a?(Hash) super() merge(constructor) else super(constructor) end end |
Instance Method Details
#[](key) ⇒ Object
144 145 146 147 148 |
# File 'lib/logstash/codecs/IPFIX/util.rb', line 144 def [](key) sterilize(key) clear(key) if expired?(key) regular_reader(key) end |
#[]=(key, *args) ⇒ Object
150 151 152 153 154 155 156 157 158 159 160 161 162 |
# File 'lib/logstash/codecs/IPFIX/util.rb', line 150 def []=(key, *args) if args.length == 2 value, ttl = args[1], args[0] elsif args.length == 1 value, ttl = args[0], 60 else raise ArgumentError, "Wrong number of arguments, expected 2 or 3, received: #{args.length+1}\n"+ "Example Usage: volatile_hash[:key]=value OR volatile_hash[:key, ttl]=value" end sterilize(key) ttl(key, ttl) regular_writer(key, value) end |
#cleanup! ⇒ Object
169 170 171 172 |
# File 'lib/logstash/codecs/IPFIX/util.rb', line 169 def cleanup! now = Time.now.to_i @register.map {|k,v| clear(k) if v < now} end |
#clear(key) ⇒ Object
174 175 176 177 178 |
# File 'lib/logstash/codecs/IPFIX/util.rb', line 174 def clear(key) sterilize(key) @register.delete key self.delete key end |
#merge(hsh) ⇒ Object
164 165 166 167 |
# File 'lib/logstash/codecs/IPFIX/util.rb', line 164 def merge(hsh) hsh.map {|key,value| self[sterile(key)] = hsh[key]} self end |
#regular_reader ⇒ Object
142 |
# File 'lib/logstash/codecs/IPFIX/util.rb', line 142 alias_method :regular_reader, :[] |
#regular_writer ⇒ Object
141 |
# File 'lib/logstash/codecs/IPFIX/util.rb', line 141 alias_method :regular_writer, :[]= |