Class: Gumdrop::Data::Provider
- Inherits:
-
Object
- Object
- Gumdrop::Data::Provider
show all
- Defined in:
- lib/gumdrop/data.rb
Overview
Base class for Data Proviers
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.extensions(*extnames) ⇒ Object
Also known as:
extension
171
172
173
174
175
176
177
|
# File 'lib/gumdrop/data.rb', line 171
def extensions(*extnames)
provider_class= self
@@providers ||= {}
extnames.each do |ext|
@@providers[ext.to_s]= provider_class
end
end
|
.for(ext) ⇒ Object
184
185
186
187
188
189
190
191
192
193
|
# File 'lib/gumdrop/data.rb', line 184
def for(ext)
case
when provider_class= @@providers[ext]
provider_class.new
when provider_class= @@providers[".#{ ext }"]
provider_class.new
else
nil
end
end
|
.registered_exts ⇒ Object
180
181
182
|
# File 'lib/gumdrop/data.rb', line 180
def registered_exts
@@providers.keys
end
|
Instance Method Details
#available? ⇒ Boolean
144
145
146
|
# File 'lib/gumdrop/data.rb', line 144
def available?
raise "available? must be implemented! (#{self.class})"
end
|
#data_for(filepath) ⇒ Object
148
149
150
|
# File 'lib/gumdrop/data.rb', line 148
def data_for(filepath)
raise "data_for must be implemented! (#{self.class})"
end
|
#supply_data(object) ⇒ Object
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
|
# File 'lib/gumdrop/data.rb', line 152
def supply_data(object)
case object
when Hash
object = object.clone
object.each do |key, value|
object[key] = supply_data(value)
end
Gumdrop::Util::HashObject.from object
when Array
object = object.clone
object.map! { |item| supply_data(item) }
else
object
end
end
|