Class: Array
- Inherits:
-
Object
show all
- Defined in:
- lib/rgen/array_extensions.rb
Instance Method Summary
collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(m, *args) ⇒ Object
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/rgen/array_extensions.rb', line 12
def method_missing(m, *args)
super unless size == 0 or compact.any?{|e| e.is_a? RGen::MetamodelBuilder::MMBase}
result = []
inResult = {}
compact.each do |e|
if e.is_a? RGen::MetamodelBuilder::MMBase
((o=e.send(m)).is_a?(Array) ? o : [o] ).each do |v|
next if inResult[v.object_id]
inResult[v.object_id] = true
result << v
end
else
raise StandardError.new("Trying to call a method on an array element not a RGen MMBase")
end
end
result.compact
end
|
Instance Method Details
#>>(method) ⇒ Object
8
9
10
|
# File 'lib/rgen/array_extensions.rb', line 8
def >>(method)
compact.inject([]) { |r,e| r | ( (o=e.send(method)).is_a?(Array) ? o : [o] ) }
end
|