Class: DataStore

Inherits:
Hash
  • Object
show all
Defined in:
lib/ensconce/data_store.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(settings_object, params = {}) ⇒ DataStore

Returns a new instance of DataStore.



5
6
7
8
9
10
11
# File 'lib/ensconce/data_store.rb', line 5

def initialize(settings_object, params = {})
  super()
  data = params.delete(:data)
  @params = params
  @settings = settings_object
  replace data if data
end

Instance Attribute Details

#paramsObject

Returns the value of attribute params.



3
4
5
# File 'lib/ensconce/data_store.rb', line 3

def params
  @params
end

#settingsObject

Returns the value of attribute settings.



3
4
5
# File 'lib/ensconce/data_store.rb', line 3

def settings
  @settings
end

Class Method Details

.adapterObject



37
38
39
# File 'lib/ensconce/data_store.rb', line 37

def self.adapter
  @adapter_klass
end

.adapter=(klass) ⇒ Object



33
34
35
# File 'lib/ensconce/data_store.rb', line 33

def self.adapter=(klass)
  @adapter_klass = klass
end

.open(settings_object, params = {}) ⇒ Object



27
28
29
30
31
# File 'lib/ensconce/data_store.rb', line 27

def self.open(settings_object, params = {})
  data_store = new settings_object, params
  data_store.get
  return data_store
end

Instance Method Details

#adapterObject



18
19
20
# File 'lib/ensconce/data_store.rb', line 18

def adapter
  @adapter ||= self.class.adapter.for(settings, params)
end

#getObject



22
23
24
# File 'lib/ensconce/data_store.rb', line 22

def get
  replace adapter.get.merge(self)
end

#saveObject



13
14
15
16
# File 'lib/ensconce/data_store.rb', line 13

def save
  raise "adapter must be specifed" unless adapter
  adapter.push({}.merge(self))
end