class Store2::File
Attributes
data[R]
Public Class Methods
_reset()
click to toggle source
# File lib/store2/file.rb, line 78 def _reset instances.each(&:_reset) end
new(*args)
click to toggle source
Calls superclass method
# File lib/store2/file.rb, line 3 def initialize(*args) super @data = load self.class.register(self) end
register(instance)
click to toggle source
# File lib/store2/file.rb, line 74 def register(instance) instances << instance end
Private Class Methods
instances()
click to toggle source
# File lib/store2/file.rb, line 84 def instances @_instances ||= [] end
Public Instance Methods
_reset()
click to toggle source
# File lib/store2/file.rb, line 43 def _reset create end
build()
click to toggle source
# File lib/store2/file.rb, line 9 def build scoped end
fetch(keys, &block)
click to toggle source
# File lib/store2/file.rb, line 34 def fetch(keys, &block) return block.call unless has?(keys) get(keys) end
get(keys)
click to toggle source
# File lib/store2/file.rb, line 17 def get(keys) keys.inject(data) { |data, key| data.fetch(key) } end
get_or_set(keys, value)
click to toggle source
# File lib/store2/file.rb, line 29 def get_or_set(keys, value) set(keys, value) unless has?(keys) get(keys) end
has?(keys)
click to toggle source
# File lib/store2/file.rb, line 25 def has?(keys) get(keys[0...-1]).has_key?(keys[-1]) end
save()
click to toggle source
# File lib/store2/file.rb, line 39 def save ::File.write(filename, to_yaml) end
scoped(*keys)
click to toggle source
# File lib/store2/file.rb, line 13 def scoped(*keys) Scoped.new(self, keys) end
set(keys, value)
click to toggle source
# File lib/store2/file.rb, line 21 def set(keys, value) get(keys[0...-1])[keys[-1]] = value end
Private Instance Methods
clear()
click to toggle source
# File lib/store2/file.rb, line 64 def clear @data = {} end
create()
click to toggle source
# File lib/store2/file.rb, line 58 def create clear save data end
load()
click to toggle source
# File lib/store2/file.rb, line 53 def load return create unless ::File.exist?(filename) YAML.load_file(filename) end
to_yaml()
click to toggle source
# File lib/store2/file.rb, line 68 def to_yaml data.to_yaml end