109: def regions(name=nil, tags=Selectable::Tags.new)
110: return self if name.nil?
111: self.ranges(name, tags).collect do |base_range|
112: marks = self.sort.select do |mark|
113: mark >= base_range.from &&
114: mark <= base_range.to &&
115: mark.tags >= base_range.tags
116: end
117: ranges = self.ranges.select do |range|
118: range.from >= base_range.from &&
119: range.to <= base_range.to &&
120: range.tags >= base_range.tags
121: end
122: tl = Benelux::Timeline.new(marks)
123: tl.ranges = ranges.sort
124: tl
125: end
126: end