Class: FileWatch::SincedbRecordSerializer
- Inherits:
-
Object
- Object
- FileWatch::SincedbRecordSerializer
- Defined in:
- lib/filewatch/sincedb_record_serializer.rb
Instance Attribute Summary collapse
-
#expired_keys ⇒ Object
readonly
Returns the value of attribute expired_keys.
Class Method Summary collapse
Instance Method Summary collapse
- #deserialize(io) ⇒ Object
- #deserialize_record(record) ⇒ Object
-
#initialize(sincedb_value_expiry) ⇒ SincedbRecordSerializer
constructor
A new instance of SincedbRecordSerializer.
- #serialize(db, io, as_of = Time.now.to_f) ⇒ Object
- #serialize_record(k, v) ⇒ Object
- #update_sincedb_value_expiry_from_days(days) ⇒ Object
Constructor Details
#initialize(sincedb_value_expiry) ⇒ SincedbRecordSerializer
Returns a new instance of SincedbRecordSerializer.
12 13 14 15 |
# File 'lib/filewatch/sincedb_record_serializer.rb', line 12 def initialize(sincedb_value_expiry) @sincedb_value_expiry = sincedb_value_expiry @expired_keys = [] end |
Instance Attribute Details
#expired_keys ⇒ Object (readonly)
Returns the value of attribute expired_keys.
6 7 8 |
# File 'lib/filewatch/sincedb_record_serializer.rb', line 6 def expired_keys @expired_keys end |
Class Method Details
.days_to_seconds(days) ⇒ Object
8 9 10 |
# File 'lib/filewatch/sincedb_record_serializer.rb', line 8 def self.days_to_seconds(days) (24 * 3600) * days.to_f end |
Instance Method Details
#deserialize(io) ⇒ Object
32 33 34 35 36 |
# File 'lib/filewatch/sincedb_record_serializer.rb', line 32 def deserialize(io) io.each do |record| yield deserialize_record(record) #.tap{|val| STDERR.puts val} end end |
#deserialize_record(record) ⇒ Object
43 44 45 46 47 |
# File 'lib/filewatch/sincedb_record_serializer.rb', line 43 def deserialize_record(record) return [] if record.nil? || record.empty? parts = record.split(" ") parse_line_v2(parts) || parse_line_v1(parts) end |
#serialize(db, io, as_of = Time.now.to_f) ⇒ Object
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/filewatch/sincedb_record_serializer.rb', line 21 def serialize(db, io, as_of = Time.now.to_f) @expired_keys.clear db.each do |key, value| if as_of > value.last_changed_at_expires(@sincedb_value_expiry) @expired_keys << key next end io.write(serialize_record(key, value)) end end |
#serialize_record(k, v) ⇒ Object
38 39 40 41 |
# File 'lib/filewatch/sincedb_record_serializer.rb', line 38 def serialize_record(k, v) # effectively InodeStruct#to_s SincedbValue#to_s "#{k} #{v}\n" end |
#update_sincedb_value_expiry_from_days(days) ⇒ Object
17 18 19 |
# File 'lib/filewatch/sincedb_record_serializer.rb', line 17 def update_sincedb_value_expiry_from_days(days) @sincedb_value_expiry = SincedbRecordSerializer.days_to_seconds(days) end |