Class: Amber::Storage::Json

Inherits:
Amber::Storage show all
Includes:
Amber::StorageDelegate
Defined in:
lib/amber/storage/json.rb

Instance Attribute Summary

Attributes inherited from Amber::Storage

#data, #model, #status

Instance Method Summary collapse

Constructor Details

#initialize(model, file_name) ⇒ Json

Returns a new instance of Json.



4
5
6
7
8
9
10
# File 'lib/amber/storage/json.rb', line 4

def initialize(model, file_name)
  super model, Amber::Storage::Driver::File.new(file_name)
  if @driver.mount
    @status = true
  end
  @data = {}
end

Instance Method Details

#delete(id) ⇒ Object



26
27
28
# File 'lib/amber/storage/json.rb', line 26

def delete(id)
  
end

#generate(data) ⇒ Object



46
47
48
49
50
51
52
# File 'lib/amber/storage/json.rb', line 46

def generate(data)
  begin
    JSON.generate data
  rescue Exception => e
    p e
  end
end

#get(id) ⇒ Object



12
13
14
15
# File 'lib/amber/storage/json.rb', line 12

def get(id)
  self.refresh
  @data[id.to_s]
end

#parse(data) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/amber/storage/json.rb', line 38

def parse(data)
  begin
    JSON.parse data
  rescue Exception => e
    p e
  end
end

#patch(id, model) ⇒ Object



22
23
24
# File 'lib/amber/storage/json.rb', line 22

def patch(id, model)
  
end

#post(model) ⇒ Object



17
18
19
20
# File 'lib/amber/storage/json.rb', line 17

def post(model)
  self.refresh
  @data[model.id]
end

#refreshObject



30
31
32
33
34
35
36
# File 'lib/amber/storage/json.rb', line 30

def refresh
  data = @driver.read
  data = self.parse data
  if data
    @data = data
  end
end