Module: Nuri::Master::Model

Defined in:
lib/nuri/directory.rb

Constant Summary collapse

@@mutex =
Mutex.new
@@model =
{}

Class Method Summary collapse

Class Method Details

.delete(path) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/nuri/directory.rb', line 28

def self.delete(path)
	@@mutex.synchronize {
		parent_path, key = path.pop_ref if path.pop_ref
		if key.nil?
			@@model.delete(parent_path)
		else
			parent = @@model.at?(parent_path)
			fail "#{parent_path} is invalid! - #{parent.class.name}" if !parent.is_a?(Hash)
			parent.delete(key)
		end
	}
end

.get(path) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/nuri/directory.rb', line 20

def self.get(path)
	data = nil
	@@mutex.synchronize {
		data = @@model.at?(path)
	}
	data
end

.set(path, data) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/nuri/directory.rb', line 7

def self.set(path, data)
	@@mutex.synchronize {
		parent_path, key = path.pop_ref
		if key.nil?
			@@model[parent_path] = data
		else
			parent = @@model.at?(parent_path)
			fail "#{parent_path} is invalid! - #{parent.class.name}" if !parent.is_a?(Hash)
			parent[key] = data
		end
	}
end