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