Class: BizRatr::FourSquareConnector

Inherits:
Connector
  • Object
show all
Defined in:
lib/bizratr/connector.rb

Instance Method Summary collapse

Methods inherited from Connector

#geocode

Constructor Details

#initialize(config) ⇒ FourSquareConnector

Returns a new instance of FourSquareConnector.



44
45
46
# File 'lib/bizratr/connector.rb', line 44

def initialize(config)
  @client = Foursquare2::Client.new(config)
end

Instance Method Details

#make_business(item) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/bizratr/connector.rb', line 57

def make_business(item)
  b = Business.new(item['location']['lat'], item['location']['lng'], item['name'])
  b.add_id(:foursquare, item['id'])
  categories = item.categories.map { |c| [ c.name ] + c.parents }.flatten
  b.add_categories(:foursquare, categories)
  b.phone = item['contact'].fetch('phone', nil)
  b.twitter = item['contact'].fetch('twitter', nil)
  b.state = item['location']['state']
  b.city = item['location']['city']
  b.country = item['location']['cc']
  b.address = item['location']['address']
  b.add_checkins(:foursquare, item['stats']['checkinsCount'])
  b.add_users(:foursquare, item['stats']['usersCount'])
  b
end

#search_location(location, query) ⇒ Object



48
49
50
51
52
53
54
55
# File 'lib/bizratr/connector.rb', line 48

def search_location(location, query)
  if location.is_a? Array
    results = @client.search_venues(:ll => location.join(","), :query => query)
  else
    results = @client.search_venues(:near => location, :query => query)
  end
  results['groups'].first['items'].map { |item| make_business(item) }
end