module Nutella::Framework::Persist

Implements basic persistence for framework-level components

Public Class Methods

get_json_collection_store( name ) click to toggle source

This method returns a JSON-file-backed store (i.e. persistence) for a collection (i.e. an Array) @param [String] name the name of the store @return [JSONFilePersistedCollection] a JSON-file-backed collection store

# File lib/nutella_lib/framework_persist.rb, line 37
def self.get_json_collection_store( name )
  dir_path = "#{ENV['HOME']}/.nutella/data/#{Nutella.component_id}"
  file_path = "#{dir_path}/#{name}.json"
  FileUtils.mkdir_p dir_path
  JSONFilePersistedCollection.new file_path
end
get_json_object_store( name ) click to toggle source

This method returns a JSON-file-backed store (i.e. persistence) for a single object (i.e. an Hash) @param [String] name the name of the store @return [JSONFilePersistedHash] a JSON-file-backed Hash store

# File lib/nutella_lib/framework_persist.rb, line 48
def self.get_json_object_store( name )
  dir_path = "#{ENV['HOME']}/.nutella/data/#{Nutella.component_id}"
  file_path = "#{dir_path}/#{name}.json"
  FileUtils.mkdir_p dir_path
  JSONFilePersistedHash.new file_path
end
get_mongo_collection_store( name ) click to toggle source

This method returns a MongoDB-backed store (i.e. persistence) for a collection (i.e. an Array) @param [String] name the name of the store @return [MongoPersistedCollection] a MongoDB-backed collection store

# File lib/nutella_lib/framework_persist.rb, line 21
def self.get_mongo_collection_store( name )
  MongoPersistedCollection.new Nutella.mongo_host, 'nutella', name
end
get_mongo_object_store( name ) click to toggle source

This method returns a MongoDB-backed store (i.e. persistence) for a single object (i.e. an Hash) @param [String] name the name of the store @return [MongoPersistedHash] a MongoDB-backed Hash store

# File lib/nutella_lib/framework_persist.rb, line 29
def self.get_mongo_object_store( name )
  MongoPersistedHash.new Nutella.mongo_host, 'nutella', 'fr_persisted_hashes', name
end
get_run_json_collection_store( app_id, run_id, name ) click to toggle source

This method returns a JSON-file-backed store for a collection at the run level @param [String] app_id @param [String] run_id @param [String] name the name of the store @return [JSONFilePersistedCollection] a JSON-file-backed collection store

# File lib/nutella_lib/framework_persist.rb, line 99
def self.get_run_json_collection_store( app_id, run_id, name )
  dir_path = "#{ENV['HOME']}/.nutella/data/#{Nutella.component_id}/#{app_id}/#{run_id}"
  file_path = "#{dir_path}/#{name}.json"
  FileUtils.mkdir_p dir_path
  JSONFilePersistedCollection.new file_path
end
get_run_json_object_store( app_id, run_id, name ) click to toggle source

This method returns a JSON-file-backed store for a single object at the run level @param [String] app_id @param [String] run_id @param [String] name the name of the store @return [JSONFilePersistedHash] a JSON-file-backed Hash store

# File lib/nutella_lib/framework_persist.rb, line 112
def self.get_run_json_object_store( app_id, run_id, name )
  dir_path = "#{ENV['HOME']}/.nutella/data/#{Nutella.component_id}/#{app_id}/#{run_id}"
  file_path = "#{dir_path}/#{name}.json"
  FileUtils.mkdir_p dir_path
  JSONFilePersistedHash.new file_path
end
get_run_mongo_collection_store( app_id, run_id, name ) click to toggle source

This method returns a MongoDB-backed store for a collection at the run level @param [String] app_id @param [String] run_id @param [String] name the name of the store @return [MongoPersistedCollection] a MongoDB-backed collection store

# File lib/nutella_lib/framework_persist.rb, line 67
def self.get_run_mongo_collection_store( app_id, run_id, name )
  if @run_stores.nil?
    @run_stores = {}
  end
  unless @run_stores.include? [app_id, run_id, name]
    @run_stores[[app_id, run_id, name]] = MongoPersistedCollection.new Nutella.mongo_host, app_id, "#{run_id}/#{name}"
  end
  @run_stores[[app_id, run_id, name]]
end
get_run_mongo_object_store( app_id, run_id, name ) click to toggle source

This method returns a MongoDB-backed store for a single object at the run level @param [String] app_id @param [String] run_id @param [String] name the name of the store @return [MongoPersistedHash] a MongoDB-backed Hash store

# File lib/nutella_lib/framework_persist.rb, line 83
def self.get_run_mongo_object_store( app_id, run_id, name )
  if @run_stores.nil?
    @run_stores = {}
  end
  unless @run_stores.include? [app_id, run_id, name]
    @run_stores[[app_id, run_id, name]] = MongoPersistedHash.new Nutella.mongo_host, app_id, 'run_persisted_hashes', "#{run_id}/#{name}"
  end
  @run_stores[[app_id, run_id, name]]
end