Class: Nucleon::Config::Collection

Inherits:
Object
  • Object
show all
Defined in:
lib/core/config/collection.rb

Constant Summary collapse

@@lock =

Property accessor / modifiers

Mutex.new
@@properties =
{}

Class Method Summary collapse

Class Method Details

.allObject




14
15
16
# File 'lib/core/config/collection.rb', line 14

def self.all
  @@properties
end

.clearObject




46
47
48
49
50
# File 'lib/core/config/collection.rb', line 46

def self.clear
  @@lock.synchronize do
    @@properties = {}
  end
end

.delete(name) ⇒ Object




38
39
40
41
42
# File 'lib/core/config/collection.rb', line 38

def self.delete(name)
  @@lock.synchronize do
    @@properties.delete(name.to_sym)
  end
end

.get(name) ⇒ Object




20
21
22
23
24
25
26
# File 'lib/core/config/collection.rb', line 20

def self.get(name)
  value = nil
  @@lock.synchronize do
    value = @@properties[name.to_sym]
  end
  value
end

.save(options = {}) ⇒ Object




54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/core/config/collection.rb', line 54

def self.save(options = {})
  unless Util::Data.empty?(options[:log_dir])
    @@lock.synchronize do
      log_dir = options[:log_dir]
    
      if options[:config_store]
        unless File.directory?(log_dir)
          FileUtils.mkdir_p(log_dir)
        end
        Util::Disk.write(File.join(log_dir, "properties.json"), Util::Data.to_json(@@properties, true))
        Util::Disk.write(File.join(log_dir, "properties.yaml"), Util::Data.to_yaml(Util::Data.string_map(@@properties)))
      end
    end
  end
end

.set(name, value) ⇒ Object




30
31
32
33
34
# File 'lib/core/config/collection.rb', line 30

def self.set(name, value)
  @@lock.synchronize do
    @@properties[name.to_sym] = value
  end
end