class ObStore::Data
Attributes
data[R]
expiry[RW]
updated[R]
Public Class Methods
new(data=nil, options={})
click to toggle source
# File lib/obstore/data.rb, line 19 def initialize(data=nil, options={}) @expiry = options[:expiry] # in seconds @data = {} store_data_by_key :data, data @updated = Time.now if options[:metadata] options[:metadata].each do |key, value| store_data_by_key key, value end end end
Public Instance Methods
data=(data)
click to toggle source
custom setter for data attribute that sets the update time
# File lib/obstore/data.rb, line 52 def data=(data) store_data_by_key(:data, data) end
fetch()
click to toggle source
returns the object you had saved
# File lib/obstore/data.rb, line 32 def fetch fetch_data_by_key(:data) end
save(data)
click to toggle source
Saves the object
# File lib/obstore/data.rb, line 47 def save(data) self.data=data end
stale?()
click to toggle source
returns boolean value if data has expired
# File lib/obstore/data.rb, line 37 def stale? if @expiry if ts < Time.now.to_i - @expiry return true end end return false end
ts()
click to toggle source
helper method to return the timestamp as an int
# File lib/obstore/data.rb, line 62 def ts with_mutex { @updated.to_i } end
Private Instance Methods
fetch_data_by_key(key)
click to toggle source
method used by method_missing
to fetch meta data
# File lib/obstore/data.rb, line 77 def fetch_data_by_key(key) with_mutex { @data[key.to_sym] } end
method_missing(meth, *args, &block)
click to toggle source
Calls superclass method
# File lib/obstore/data.rb, line 81 def method_missing(meth, *args, &block) if meth.to_s =~ /^(.+)=$/ store_data_by_key($1, *args) elsif meth.to_s =~ /^(.+)$/ fetch_data_by_key($1) else super end end
store_data_by_key(key, value)
click to toggle source
method used by method_missing
to store meta data
# File lib/obstore/data.rb, line 69 def store_data_by_key(key, value) with_mutex { @data.store key.to_sym, value @updated = Time.now } end