class Ant::Server::Nanoservice::Datasource::JSONRepository

Public Class Methods

new(folder, id, id_generator) click to toggle source
Calls superclass method
# File lib/ant/server/nanoservice/datasource/json_repository.rb, line 8
def initialize(folder, id, id_generator)
  @path = folder
  super(id, id_generator)
end

Public Instance Methods

create_(data) click to toggle source
# File lib/ant/server/nanoservice/datasource/json_repository.rb, line 20
def create_(data)
  store(data)
  data
end
get(id) click to toggle source
# File lib/ant/server/nanoservice/datasource/json_repository.rb, line 13
def get(id)
  path = full_path(id)
  raise(ObjectNotFound, id) unless File.file?(path)
  contents = File.read(path)
  JSON.parse(contents, symbolize_names: true)
end
store(data) click to toggle source
# File lib/ant/server/nanoservice/datasource/json_repository.rb, line 25
def store(data)
  id = data[@id]
  File.write(full_path(id), data.to_json)
end

Private Instance Methods

full_path(id) click to toggle source
# File lib/ant/server/nanoservice/datasource/json_repository.rb, line 32
def full_path(id)
  "#{@path}/#{id}.json"
end