From b1b2a2e360ff13f6caf3d4e7ba1c656a8131584a Mon Sep 17 00:00:00 2001 From: Jonathan Kolyer Date: Sun, 17 Nov 2013 17:29:23 -0600 Subject: [PATCH] vrfs-775: added new_musicians method and test --- ruby/lib/jam_ruby/models/search.rb | 14 ++++++++++++++ ruby/spec/jam_ruby/models/musician_search_spec.rb | 6 ++++++ 2 files changed, 20 insertions(+) diff --git a/ruby/lib/jam_ruby/models/search.rb b/ruby/lib/jam_ruby/models/search.rb index f51ccd673..59b7d4875 100644 --- a/ruby/lib/jam_ruby/models/search.rb +++ b/ruby/lib/jam_ruby/models/search.rb @@ -247,5 +247,19 @@ module JamRuby false end + def self.new_musicians(since_date=Time.now - 1.week, max_count=100, radius=500) + return unless block_given? + User.where(['lat IS NOT NULL AND lng IS NOT NULL']).find_each do |usr| + rel = User.where(:musician => true) + .where(['created_at >= ? AND users.id != ?', since_date, usr.id]) + .within(radius, :origin => [usr.lat, usr.lng]) + .order('created_at DESC') + .limit(max_count) + if 0 < rel.count + yield rel + end + end + end + end end diff --git a/ruby/spec/jam_ruby/models/musician_search_spec.rb b/ruby/spec/jam_ruby/models/musician_search_spec.rb index 5ce018da5..159799d2e 100644 --- a/ruby/spec/jam_ruby/models/musician_search_spec.rb +++ b/ruby/spec/jam_ruby/models/musician_search_spec.rb @@ -168,4 +168,10 @@ describe User do results.musicians.count.should == User.count end + it "should find new musicians nearby" do + Search.new_musicians do |usrs| + usrs.count.should.not == 0 + end + end + end