Class: MongoCollection::MongoCollectionProxy

Inherits:
Object
  • Object
show all
Defined in:
lib/mongo_collection.rb

Instance Method Summary collapse

Constructor Details

#initialize(collection, klass) ⇒ MongoCollectionProxy

Returns a new instance of MongoCollectionProxy.



61
62
63
64
# File 'lib/mongo_collection.rb', line 61

def initialize(collection, klass)
    @class = klass
    @target = collection        
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args, &block) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/mongo_collection.rb', line 66

def method_missing(method, *args, &block)
    result = @target.send(method, *args, &block)                    
    if result.is_a?(BSON::Document)
        return @class.from_bson(result)
    elsif result.is_a?(Fixnum)
        return result
    elsif result.is_a?(Array)
        return result.map{|bson| @class.from_bson(bson)}                            
    elsif result.is_a?(TrueClass) || result.is_a?(FalseClass)
        return result
    end
    @target = result 
    self
end

Instance Method Details

#allObject



81
82
83
# File 'lib/mongo_collection.rb', line 81

def all
    self.to_a
end

#blank?Boolean

Returns:

  • (Boolean)


105
106
107
# File 'lib/mongo_collection.rb', line 105

def blank? 
    self.to_a.blank?
end

#each(&block) ⇒ Object



97
98
99
# File 'lib/mongo_collection.rb', line 97

def each(&block)
    self.to_a.each(&block)
end

#each_cursorObject



93
94
95
# File 'lib/mongo_collection.rb', line 93

def each_cursor 
    @target.each 
end

#map(&block) ⇒ Object



89
90
91
# File 'lib/mongo_collection.rb', line 89

def map(&block)
    self.to_a.map(&block)
end

#sort_by(&block) ⇒ Object



85
86
87
# File 'lib/mongo_collection.rb', line 85

def sort_by(&block)            
    self.to_a.sort_by(&block)
end

#to_hObject



101
102
103
# File 'lib/mongo_collection.rb', line 101

def to_h
    self.map{|x| x.to_h}
end