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
155
156
157
158
159
160
161
|
# File 'lib/gumdrop/data.rb', line 155
def extensions(*extnames)
provider_class= self
@@providers ||= {}
extnames.each do |ext|
@@providers[ext.to_s]= provider_class
end
end
|
.for(ext) ⇒ Object
168
169
170
171
172
173
174
175
176
177
|
# File 'lib/gumdrop/data.rb', line 168
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
164
165
166
|
# File 'lib/gumdrop/data.rb', line 164
def registered_exts
@@providers.keys
end
|
Instance Method Details
#available? ⇒ Boolean
128
129
130
|
# File 'lib/gumdrop/data.rb', line 128
def available?
raise "available? must be implemented! (#{self.class})"
end
|
#data_for(filepath) ⇒ Object
132
133
134
|
# File 'lib/gumdrop/data.rb', line 132
def data_for(filepath)
raise "data_for must be implemented! (#{self.class})"
end
|
#supply_data(object) ⇒ Object
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
# File 'lib/gumdrop/data.rb', line 136
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
|