Class: Configural::Config::FileBase
- Inherits:
-
Object
- Object
- Configural::Config::FileBase
show all
- Includes:
- Enumerable
- Defined in:
- lib/configural/config/file_base.rb
Overview
Base class for abstracting configuration file access. You shouldn’t use this class directly. Use one of the subclasses (e.g. YAMLFile) instead.
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(path, options) ⇒ FileBase
Returns a new instance of FileBase.
72
73
74
75
76
77
78
|
# File 'lib/configural/config/file_base.rb', line 72
def initialize( path, options )
@path = path
@options = options
@data = {}
@loaded = false
load unless @options[:lazy_loading]
end
|
Instance Attribute Details
#path ⇒ Object
Returns the value of attribute path.
70
71
72
|
# File 'lib/configural/config/file_base.rb', line 70
def path
@path
end
|
Class Method Details
.extnames ⇒ Object
62
63
64
|
# File 'lib/configural/config/file_base.rb', line 62
def self.extnames
raise 'Method not implemented for base class.'
end
|
58
59
60
|
# File 'lib/configural/config/file_base.rb', line 58
def self.format
raise 'Method not implemented for base class.'
end
|
51
52
53
54
55
|
# File 'lib/configural/config/file_base.rb', line 51
def self.get_format_by_extname( extname )
@subclasses.reverse.find { |subclass|
subclass.extnames.include?(extname)
} or raise "Unrecognized file extension: #{extname}"
end
|
45
46
47
48
49
|
# File 'lib/configural/config/file_base.rb', line 45
def self.get_format_by_name( format )
@subclasses.reverse.find { |subclass|
subclass.format == format
} or raise "Unrecognized file format: #{format}"
end
|
.inherited(subclass) ⇒ Object
39
40
41
42
|
# File 'lib/configural/config/file_base.rb', line 39
def self.inherited(subclass)
@subclasses ||= []
@subclasses << subclass
end
|
Instance Method Details
#[](key) ⇒ Object
113
114
115
116
|
# File 'lib/configural/config/file_base.rb', line 113
def [](key)
load unless @loaded
@data[key.to_s]
end
|
#[]=(key, value) ⇒ Object
118
119
120
121
|
# File 'lib/configural/config/file_base.rb', line 118
def []=(key, value)
load unless @loaded
@data[key.to_s] = value
end
|
#clear ⇒ Object
81
82
83
84
85
|
# File 'lib/configural/config/file_base.rb', line 81
def clear
@data = {}
@loaded = true
self
end
|
#close ⇒ Object
87
88
89
90
91
|
# File 'lib/configural/config/file_base.rb', line 87
def close
@data = {}
@loaded = false
self
end
|
#delete ⇒ Object
93
94
95
96
|
# File 'lib/configural/config/file_base.rb', line 93
def delete
File.rm(path, :force => true)
self
end
|
#each(&block) ⇒ Object
103
104
105
106
|
# File 'lib/configural/config/file_base.rb', line 103
def each(&block)
load unless @loaded
@data.each(&block)
end
|
#exists? ⇒ Boolean
Also known as:
exist?
98
99
100
|
# File 'lib/configural/config/file_base.rb', line 98
def exists?
File.exists?(path)
end
|
#keys ⇒ Object
108
109
110
111
|
# File 'lib/configural/config/file_base.rb', line 108
def keys
load unless @loaded
@data.keys
end
|
#load ⇒ Object
128
129
130
131
|
# File 'lib/configural/config/file_base.rb', line 128
def load
load! unless @loaded
self
end
|
#load! ⇒ Object
133
134
135
136
137
|
# File 'lib/configural/config/file_base.rb', line 133
def load!
_load
@loaded = true
self
end
|
#save ⇒ Object
139
140
141
142
|
# File 'lib/configural/config/file_base.rb', line 139
def save
_save unless not @loaded
self
end
|
#save! ⇒ Object
144
145
146
147
|
# File 'lib/configural/config/file_base.rb', line 144
def save!
_save
self
end
|
#to_hash ⇒ Object
123
124
125
126
|
# File 'lib/configural/config/file_base.rb', line 123
def to_hash
load unless @loaded
@data.dup
end
|