class Fuse::Document::AssetCollection
Public Instance Methods
<<(*args)
click to toggle source
Calls superclass method
# File lib/fuse/document/asset_collection.rb, line 22 def <<(*args) args.each { |arg| super(arg) unless include? arg } self end
group_by(*args, &block)
click to toggle source
# File lib/fuse/document/asset_collection.rb, line 36 def group_by(*args, &block) Hash[super(*args, &block).map{ |k, v| [k, self.class.new(v)] }] end
of_type(*types)
click to toggle source
# File lib/fuse/document/asset_collection.rb, line 3 def of_type(*types) self.class.new select { |a| ret = types.include? a.class types.each { |type| ret ||= a.is_a? type } unless ret ret } end
push_with_dependents(asset, pushed = [])
click to toggle source
# File lib/fuse/document/asset_collection.rb, line 27 def push_with_dependents(asset, pushed = []) pushed << asset asset.dependents.each do |dependent| raise Fuse::Exception::CircularDependency.new(asset, dependent) if pushed.include?(dependent) push_with_dependents dependent, pushed end self << asset end
sort()
click to toggle source
# File lib/fuse/document/asset_collection.rb, line 18 def sort self.class.new(self).sort! end
sort!()
click to toggle source
# File lib/fuse/document/asset_collection.rb, line 11 def sort! unsorted = Array.new(self) clear unsorted.each { |a| push_with_dependents a } self end