class Hypostasis::Namespace
Attributes
data_model[R]
name[R]
Public Class Methods
create(name, options = {})
click to toggle source
# File lib/hypostasis/namespace.rb, line 26 def self.create(name, options = {}) raise Hypostasis::Errors::NamespaceAlreadyCreated unless database[name].nil? merged_options = { data_model: :key_value }.merge(options) database.transact do |tr| tr.set(name.to_s, 'true') tr.set(name.to_s + '\\' + Hypostasis::Tuple.new('config','data_model').to_s, merged_options[:data_model].to_s) end Hypostasis::Namespace.new(name, merged_options[:data_model]) end
new(name, data_model = :key_value)
click to toggle source
# File lib/hypostasis/namespace.rb, line 4 def initialize(name, data_model = :key_value) @name = name.to_s @data_model = data_model.to_sym load_data_model end
open(name)
click to toggle source
# File lib/hypostasis/namespace.rb, line 38 def self.open(name) raise Hypostasis::Errors::NonExistentNamespace if database[name].nil? data_model = database.get(name + '\\' + Hypostasis::Tuple.new('config','data_model').to_s) raise Hypostasis::Errors::CanNotReadNamespaceConfig if data_model.nil? Hypostasis::Namespace.new(name, data_model) end
Private Class Methods
database()
click to toggle source
# File lib/hypostasis/namespace.rb, line 47 def self.database Hypostasis::Connection.database end
Public Instance Methods
destroy()
click to toggle source
# File lib/hypostasis/namespace.rb, line 17 def destroy database.clear_range_start_with(@name) true end
open()
click to toggle source
# File lib/hypostasis/namespace.rb, line 10 def open raise Hypostasis::Errors::NonExistentNamespace if database[name].nil? data_model = database.get(name + '\\' + Hypostasis::Tuple.new('config','data_model').to_s) raise Hypostasis::Errors::NamespaceDataModelMismatch if data_model != @data_model.to_s self end
to_s()
click to toggle source
# File lib/hypostasis/namespace.rb, line 22 def to_s @name end
Private Instance Methods
database()
click to toggle source
# File lib/hypostasis/namespace.rb, line 51 def database Hypostasis::Namespace.database end
load_data_model()
click to toggle source
# File lib/hypostasis/namespace.rb, line 55 def load_data_model case @data_model when :key_value self.extend Hypostasis::DataModels::KeyValue when :column_group self.extend Hypostasis::DataModels::ColumnGroup when :document self.extend Hypostasis::DataModels::Document else raise Hypostasis::Errors::UnknownNamespaceDataModel, "#{@data_model} unknown" end end