dopplr 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +22 -3
- data/lib/dopplr.rb +1 -2
- data/lib/dopplr/city.rb +4 -0
- data/lib/dopplr/client.rb +16 -7
- data/lib/dopplr/traveller.rb +26 -5
- data/lib/dopplr/trip.rb +14 -0
- metadata +2 -2
data/README.md
CHANGED
@@ -18,9 +18,9 @@ Now that you have a single-use token, assign it to the `Dopplr::Client` object a
|
|
18
18
|
client.token = '1a2b3c4d5e6f' #=> '1a2b3c4d5e6f'
|
19
19
|
client.create_session #=> '3c4d5e6f1a2b'
|
20
20
|
|
21
|
-
### Instantiating and
|
21
|
+
### Instantiating and returning data from objects
|
22
22
|
|
23
|
-
All Dopplr objects are created using the client as a base
|
23
|
+
All Dopplr objects are created using the client as a base.
|
24
24
|
|
25
25
|
mike = client.traveller #=> Dopplr::Traveller for the token holder
|
26
26
|
chicago = client.city 4887398 #=> Dopplr::City for ID 4887398
|
@@ -57,4 +57,23 @@ Return a new `Dopplr::City` object without knowing the geoname_id (I'm feeling l
|
|
57
57
|
portland = client.find_city "Portland"
|
58
58
|
|
59
59
|
portland.country #=> "United States"
|
60
|
-
portland.geoname_id #=> 5746545
|
60
|
+
portland.geoname_id #=> 5746545
|
61
|
+
|
62
|
+
### Working with and creating new trip data
|
63
|
+
|
64
|
+
Plan a new trip to Portland, OR.
|
65
|
+
|
66
|
+
portland.add_trip('2010-01-12', '2010-01-19')
|
67
|
+
portland_trip = mike.future_trips.last
|
68
|
+
|
69
|
+
portland_trip.start #=> Tue Jan 12 00:00:00 2010
|
70
|
+
portland_trip.city.latitude #=> 45.5235
|
71
|
+
|
72
|
+
Add some tags and a note to your trip.
|
73
|
+
|
74
|
+
portland_trip.add_tags :work, :meetup
|
75
|
+
portland_trip.add_note "Staying for a week, then heading back home."
|
76
|
+
|
77
|
+
Trip got canceled? Delete it.
|
78
|
+
|
79
|
+
portland_trip.delete
|
data/lib/dopplr.rb
CHANGED
data/lib/dopplr/city.rb
CHANGED
data/lib/dopplr/client.rb
CHANGED
@@ -6,18 +6,27 @@ module Dopplr
|
|
6
6
|
@token = token
|
7
7
|
end
|
8
8
|
|
9
|
-
#
|
9
|
+
# GET request with @token.
|
10
10
|
def get(path, params={})
|
11
11
|
params['format'] = 'js'
|
12
|
-
|
13
|
-
url = "/api/#{path}/?#{params_uri}"
|
12
|
+
url = "/api/#{path}/?#{URI.escape(params.collect{|key,value| "#{key}=#{value}"}.join('&'))}"
|
14
13
|
http = Net::HTTP.new("www.dopplr.com", 443)
|
15
14
|
http.use_ssl = true
|
16
15
|
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
17
|
-
http.
|
18
|
-
|
19
|
-
|
20
|
-
|
16
|
+
responce, data = http.get(url, 'Authorization' => "AuthSub token=\"#{@token}\"")
|
17
|
+
JSON.parse(data)
|
18
|
+
end
|
19
|
+
|
20
|
+
# POST request with @token.
|
21
|
+
def post(path, params={})
|
22
|
+
params['format'] = 'js'
|
23
|
+
data_string = URI.escape(params.collect{|key,value| "#{key}=#{value}"}.join('&'))
|
24
|
+
url = "/api/#{path}"
|
25
|
+
http = Net::HTTP.new("www.dopplr.com", 443)
|
26
|
+
http.use_ssl = true
|
27
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
28
|
+
response, data = http.post(url, data_string, 'Authorization' => "AuthSub token=\"#{@token}\"")
|
29
|
+
JSON.parse(data)
|
21
30
|
end
|
22
31
|
|
23
32
|
# Returns a URL for getting a token.
|
data/lib/dopplr/traveller.rb
CHANGED
@@ -39,13 +39,21 @@ module Dopplr
|
|
39
39
|
def trips(options = {})
|
40
40
|
unless @trips && !options[:force]
|
41
41
|
trips = @client.get('trips_info', @params)['trip']
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
42
|
+
@trips = trips.map do |trip|
|
43
|
+
Trip.new @client, trip['id']
|
44
|
+
end
|
45
|
+
end
|
46
|
+
@trips
|
47
|
+
end
|
48
|
+
|
49
|
+
def future_trips(options = {})
|
50
|
+
unless @future_trips && !options[:force]
|
51
|
+
trips = @client.get('future_trips_info', @params)['trip']
|
52
|
+
@future_trips = trips.map do |trip|
|
53
|
+
Trip.new @client, trip['id']
|
46
54
|
end
|
47
55
|
end
|
48
|
-
@
|
56
|
+
@future_trips
|
49
57
|
end
|
50
58
|
|
51
59
|
def fellows(options = {})
|
@@ -68,5 +76,18 @@ module Dopplr
|
|
68
76
|
end
|
69
77
|
@fellows
|
70
78
|
end
|
79
|
+
|
80
|
+
def location_on_date(date)
|
81
|
+
location = @client.get('location_on_date', @params.merge(:date => date))['location']
|
82
|
+
location['home'] = City.new(@client, location['home']['geoname_id'])
|
83
|
+
if location['trip']
|
84
|
+
location['trip'] = Trip.new(@client, location['trip']['id'])
|
85
|
+
end
|
86
|
+
location = location.inject({}) do |memo, (key, value)|
|
87
|
+
memo[key.to_sym] = value
|
88
|
+
memo
|
89
|
+
end
|
90
|
+
location
|
91
|
+
end
|
71
92
|
end
|
72
93
|
end
|
data/lib/dopplr/trip.rb
CHANGED
@@ -27,5 +27,19 @@ module Dopplr
|
|
27
27
|
end
|
28
28
|
@city
|
29
29
|
end
|
30
|
+
|
31
|
+
def add_tags(*tags)
|
32
|
+
info = @client.post 'add_trip_tags', :trip_id => @trip_id, :tags => tags.join('+')
|
33
|
+
@tags = info['trip']['tag']
|
34
|
+
end
|
35
|
+
|
36
|
+
def add_note(note)
|
37
|
+
info = @client.post 'add_trip_note', :trip_id => @trip_id, :body => note
|
38
|
+
@notes = info['trip']['note']
|
39
|
+
end
|
40
|
+
|
41
|
+
def delete
|
42
|
+
@client.post 'delete_trip', :trip_id => @trip_id
|
43
|
+
end
|
30
44
|
end
|
31
45
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dopplr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Richards
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-08-
|
12
|
+
date: 2009-08-09 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|