Class: GarminConnectr
- Inherits:
-
Object
- Object
- GarminConnectr
- Defined in:
- lib/garmin_connectr.rb
Instance Attribute Summary collapse
-
#activity_list ⇒ Object
readonly
Returns the value of attribute activity_list.
Instance Method Summary collapse
-
#activities(username, password, opts = {}) ⇒ Object
Returns an array of GarminActivity objects.
-
#initialize ⇒ GarminConnectr
constructor
A new instance of GarminConnectr.
-
#load(activity_id) ⇒ Object
Load a specific Garmin Connect activity.
Constructor Details
#initialize ⇒ GarminConnectr
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_list ⇒ Object (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 |