Class: GarminConnectr

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeGarminConnectr

Returns a new instance of GarminConnectr.



10
11
12
# File 'lib/garmin_connectr.rb', line 10

def initialize
  @activity_list = []
end

Instance Attribute Details

#activity_listObject (readonly)

Returns the value of attribute activity_list.



8
9
10
# File 'lib/garmin_connectr.rb', line 8

def activity_list
  @activity_list
end

Instance Method Details

#activities(username, password, opts = {}) ⇒ Object

Returns an array of GarminActivity objects.

Options:

:preload [true/false] - Automatically fetch additional activity data for each activity returned (slower)
:limit - Limit the number of activites returned (default: 50)


25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/garmin_connectr.rb', line 25

def activities( username, password, opts={} )
  @activity_list = []
  limit = opts[:limit] || 50
  
  agent = WWW::Mechanize.new { |agent| agent.user_agent_alias = 'Mac Safari' }
  page = agent.get('http://connect.garmin.com/signin')
  form = page.form('login')
  form.send('login:loginUsernameField', username)
  form.send('login:password', password)
  form.submit
  
  page = agent.get('http://connect.garmin.com/activities')

  doc = Nokogiri::HTML( page.body )
  activities = doc.search('.activityNameLink')
  activities[0, limit].each do |act|
    name = act.search('span').inner_html
    act[:href].match(/\/([\d]+)$/)
    aid = $1
    
    activity = GarminConnectActivity.new( aid, name )
    activity.load! if opts[:preload]
    @activity_list << activity
  end
  @activity_list
end

#load(activity_id) ⇒ Object

Load a specific Garmin Connect activity. See GarminConnectActivity rdoc for more information.



15
16
17
18
# File 'lib/garmin_connectr.rb', line 15

def load( activity_id )
  activity = GarminConnectActivity.new( activity_id )
  activity.load!
end