Sha256: d41b24566b720fc246ec93ef34dabc741a2a33fdfc2195daea7a8aeb9a52dff4

Contents?: true

Size: 1.06 KB

Versions: 4

Compression:

Stored size: 1.06 KB

Contents

module Flickry
  class Base < SuperStruct
    def initialize(*args)
      super(*args)
    end
    
    def attributes
      attrs = {}
      each_pair do |m,v|
        attrs[m] = v
      end
      attrs
    end
    
    protected
  
    def extract_attrs_into_substructs!(src, mapping, default =  nil)
      mapping.each do |obj, attr_names|
        os = SuperStruct.new
        attr_names.each do |name|
          if src.respond_to?(obj) and sub = src.send(obj)
            os[name] = (sub.respond_to?(name) ? sub.send(name) : default)
          end  
        end
        self[obj] = os
      end
    end
  
    def extract_attrs!(src, attr_names, default = nil)
      attr_names.each do |name|
        self[name] = (src.respond_to?(name) ? src.send(name) : default)
      end
    end
  
    def extract_attrs(src, attr_names, default = nil)
      str = SuperStruct.new
      attr_names.each do |name|
        str[name] = (src.respond_to?(name) ? src.send(name) : default)
      end
      return str
    end
    
    def clean(text)
      text.gsub(' ','').gsub("\\",'')
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
wideopenspaces-flickry-0.1.5 lib/flickry/base.rb
wideopenspaces-flickry-0.1.6 lib/flickry/base.rb
wideopenspaces-flickry-0.2.0 lib/flickry/base.rb
wideopenspaces-flickry-0.2.1 lib/flickry/base.rb