Module: ExtendArray

Defined in:
lib/buzztools/extend_array.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.filter_exclude(aValues, aArray = nil) ⇒ Object



38
39
40
41
# 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) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
# 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) ⇒ Object



21
22
23
24
# 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) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# 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_csvObject



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# 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

Instance Method Details

#as_hash(aItem) ⇒ Object



44
45
46
47
48
# 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