class Gumdrop::Data::Provider

Base class for Data Proviers

Public Class Methods

extension(*extnames)
Alias for: extensions
extensions(*extnames) click to toggle source
# 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
Also aliased as: extension
for(ext) click to toggle source
# 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() click to toggle source
# File lib/gumdrop/data.rb, line 180
def registered_exts
  @@providers.keys
end

Public Instance Methods

available?() click to toggle source
# File lib/gumdrop/data.rb, line 144
def available?
  raise "available? must be implemented! (#{self.class})"
end
data_for(filepath) click to toggle source
# File lib/gumdrop/data.rb, line 148
def data_for(filepath)
  raise "data_for must be implemented! (#{self.class})"
end
supply_data(object) click to toggle source
# 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
      # OpenStruct.new(object)
      Gumdrop::Util::HashObject.from object
    when Array
      object = object.clone
      object.map! { |item| supply_data(item) }
    else
      object
  end
end