37 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| module OrbitApp
 | |
|     module Module
 | |
|       module VisitorCounterEval
 | |
|         Version = "0.1"
 | |
| 
 | |
|         def display_visitors(options={})
 | |
|             map = "function(){ emit( this.referrer,{session_hash: this.session_hash,created_at: this.created_at}); };"
 | |
|             reduce = "function(key, values){ var sum = 0; values.forEach(function(doc){sum += doc.amount; }); return {amount: sum};};"
 | |
|             if options.blank?
 | |
|               impressions = Impression.collection.map_reduce(map, reduce,read: :primary, out: "vr")
 | |
|             else
 | |
|               query = Impression.where(options).selector
 | |
|               impressions = Impression.where(options).collection.map_reduce(map, reduce,read: :primary, out: "vr",:query=>query)
 | |
|             end
 | |
|           impressions.count            
 | |
|         end
 | |
| 
 | |
|         def display_visitors_today
 | |
|           display_visitors(created_at: {'$gte' => Date.today.beginning_of_day , '$lte' => DateTime.now})
 | |
|         end
 | |
| 
 | |
|         def display_visitors_this_week
 | |
|           display_visitors(created_at: {'$gte' => Date.today.beginning_of_day - 7.days, '$lte' => DateTime.now})
 | |
|         end
 | |
| 
 | |
|         def display_visitors_this_month
 | |
|           display_visitors(created_at: {'$gte' => Date.today.beginning_of_day - 1.month, '$lte' => DateTime.now})
 | |
|         end
 | |
| 
 | |
|         def display_visitors_this_year
 | |
|           display_visitors(created_at: {'$gte' => Date.today.beginning_of_day - 1.year, '$lte' =>DateTime.now})
 | |
|         end
 | |
|       end # end of VisitorCounterEval
 | |
|   end # of Module
 | |
| end # of OrbitApp
 | |
| 
 |