module ExtendArray

Public Instance Methods

as_hash(aItem) click to toggle source
# File lib/buzztools/extend_array.rb, line 44
def as_hash(aItem)
        aItem = aItem.attributes if aItem.respond_to?(:attributes)
        return aItem if aItem.is_a?(Hash)
        nil
end
filter_exclude(aValues,aArray=nil) click to toggle source
# File lib/buzztools/extend_array.rb, line 38
def filter_exclude(aValues,aArray=nil)
        aArray ||= self
        filter_exclude!(aValues,aArray.dup)
end
filter_exclude!(aValues,aArray=nil) click to toggle source
# File lib/buzztools/extend_array.rb, line 26
def filter_exclude!(aValues,aArray=nil)
        aArray ||= self
        if aValues.is_a? Array
                return aArray if aValues.empty?
                return aArray.delete_if {|v| aValues.include? v }
        elsif aValues.is_a? Regexp
                return aArray.delete_if {|v| v =~ aValues }
        else
                return filter_exclude!([aValues],aArray)
        end
end
filter_include(aValues,aArray=nil) click to toggle source
# File lib/buzztools/extend_array.rb, line 21
def filter_include(aValues,aArray=nil)
        aArray ||= self
        filter_include!(aValues,aArray.dup)
end
filter_include!(aValues,aArray=nil) click to toggle source
# File lib/buzztools/extend_array.rb, line 9
def filter_include!(aValues,aArray=nil)
        aArray ||= self
        if aValues.is_a? Array
                return aArray if aValues.empty?
                return aArray.delete_if {|v| not aValues.include? v }
        elsif aValues.is_a? Regexp
                return aArray.delete_if {|v| not v =~ aValues }
        else
                return filter_include!([aValues],aArray)
        end
end
to_csv() click to toggle source
# File lib/buzztools/extend_array.rb, line 43
    def to_csv
            def as_hash(aItem)
                    aItem = aItem.attributes if aItem.respond_to?(:attributes)
                    return aItem if aItem.is_a?(Hash)
                    nil
            end
            item1 = as_hash(first)
            raise "Must be an array of hashes" unless item1 && item1.is_a?(Hash)
            fields = item1.keys.map(&:to_s).sort
            if fields.delete('id')
                    fields.unshift('id')
            end
CSV.generate do |csv|
  csv << fields
  self.each do |i|
          next unless i = as_hash(i)
    csv << i.values_at(*column_names)
  end
end
    end