Class: SettingsManager

Inherits:
Object
  • Object
show all
Defined in:
lib/settings_manager.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(settings_name) ⇒ SettingsManager

Returns a new instance of SettingsManager.



6
7
8
9
10
# File 'lib/settings_manager.rb', line 6

def initialize(settings_name)
	@name = settings_name
	@data,@file_type,@file_path,@filename = nil
	load_data
end

Instance Attribute Details

#dataObject

Returns the value of attribute data.



4
5
6
# File 'lib/settings_manager.rb', line 4

def data
  @data
end

#file_pathObject

Returns the value of attribute file_path.



4
5
6
# File 'lib/settings_manager.rb', line 4

def file_path
  @file_path
end

#file_typeObject

Returns the value of attribute file_type.



4
5
6
# File 'lib/settings_manager.rb', line 4

def file_type
  @file_type
end

#filenameObject

Returns the value of attribute filename.



4
5
6
# File 'lib/settings_manager.rb', line 4

def filename
  @filename
end

#nameObject

Returns the value of attribute name.



4
5
6
# File 'lib/settings_manager.rb', line 4

def name
  @name
end

Class Method Details

.create_decoder(datatype, &encode_method) ⇒ Object



52
53
54
# File 'lib/settings_manager.rb', line 52

def self.create_decoder(datatype,&encode_method)
	define_method("decode_" + datatype.to_s,&encode_method)
end

.create_encoder(datatype, &encode_method) ⇒ Object



48
49
50
# File 'lib/settings_manager.rb', line 48

def self.create_encoder(datatype,&encode_method)
	define_method("encode_" + datatype.to_s,&encode_method)
end

.settings(settings_name) ⇒ Object



68
69
70
# File 'lib/settings_manager.rb', line 68

def self.settings(settings_name)
	self.new(settings_name)
end

.settings_manager_dataObject



72
73
74
# File 'lib/settings_manager.rb', line 72

def self.settings_manager_data
	YAML::load(FileResourcesManager::get(".settings")||{}.to_yaml)
end

.settings_manager_data=(data) ⇒ Object



76
77
78
79
# File 'lib/settings_manager.rb', line 76

def self.settings_manager_data=(data)
	FileResourcesManager::set(".settings",data.to_yaml)
	self
end

Instance Method Details

#[](key) ⇒ Object



60
61
62
# File 'lib/settings_manager.rb', line 60

def [](key)
	@data[key]
end

#[]=(key, value) ⇒ Object



56
57
58
# File 'lib/settings_manager.rb', line 56

def []=(key,value)
	@data[key]=value
end

#load_dataObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/settings_manager.rb', line 12

def load_data
	smd = SettingsManager.settings_manager_data[@name]
	@file_path = Dir.pwd
	@filename = @name 
	@file_type = :yaml
	if smd then
		@file_type = smd["file_type"].to_sym
		@file_path = smd["file_path"] || Dir.pwd
		@filename = smd["filename"] || @name 

		data = File.read(File.join(@file_path,@filename))
		@data=self.send("decode_" + @file_type.to_s,data)
	else
		@data={}	
	end
	self
end

#save_dataObject



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/settings_manager.rb', line 30

def save_data
	File.open(File.join(@file_path,@filename),"w"){|f|
		case @file_type
		when nil
			@file_type = :yaml
			f << @data.to_yaml
		else
			f << self.send("encode_" + @file_type.to_s,data)
		end
	}
	file_data = {}
	file_data["file_type"] = @file_type.to_s if @file_type
	file_data["file_path"] = @file_path if @file_path
	file_data["filename"] = @filename if @filename
	smd = SettingsManager.settings_manager_data
	smd[@name] = file_data
	SettingsManager.settings_manager_data=smd
end