tripit 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.5
1
+ 0.3.6
@@ -6,6 +6,7 @@ module TripIt
6
6
 
7
7
  def initialize(client, source = nil)
8
8
  @client = client
9
+ @tripCache ||= {}
9
10
  populate(source)
10
11
  end
11
12
 
@@ -33,19 +34,21 @@ module TripIt
33
34
  end
34
35
 
35
36
  def trips(params = {})
36
- return @tripArr unless @tripArr.nil?
37
- @tripArr = []
37
+ serialized_param_str = params.keys.sort.inject('') do |str, key| str += "#{key}:#{params[key]}::" end
38
+ return @tripCache[serialized_param_str] unless @tripCache[serialized_param_str].nil?
39
+ tripArr = []
38
40
  tripList = @client.list("/trip", params)["Trip"]
39
41
  unless tripList.nil?
40
42
  if tripList.is_a?(Array)
41
43
  tripList.each do |trip|
42
- @tripArr << TripIt::Trip.new(@client,trip['id'],params[:include_objects])
44
+ tripArr << TripIt::Trip.new(@client,trip['id'],params[:include_objects])
43
45
  end
44
46
  else
45
- @tripArr << TripIt::Trip.new(@client,tripList['id'],params[:include_objects])
47
+ tripArr << TripIt::Trip.new(@client,tripList['id'],params[:include_objects])
46
48
  end
47
49
  end
48
- return @tripArr
50
+ @tripCache[serialized_param_str] = tripArr
51
+ return tripArr
49
52
  end
50
53
 
51
54
  def points_programs
@@ -64,5 +67,13 @@ module TripIt
64
67
  end
65
68
  return @progArr
66
69
  end
70
+
71
+ def subscribe_trips
72
+ @client.subscribe("/trip")
73
+ end
74
+
75
+ def unsubscribe
76
+ @client.unsubscribe
77
+ end
67
78
  end
68
- end
79
+ end
@@ -1,7 +1,7 @@
1
1
  module TripIt
2
2
  class OAuth < Base
3
3
  attr_reader :consumer, :access_token
4
- exceptions :bad_request_exception, :unauthorized_exception, :not_found_exception, :server_error
4
+ exceptions :bad_request_exception, :unauthorized_exception, :not_found_exception, :server_error, :forbidden_exception, :service_unavailable_error
5
5
 
6
6
  def initialize(ctoken, csecret)
7
7
  @consumer = ::OAuth::Consumer.new(ctoken, csecret, :site => 'https://api.tripit.com')
@@ -59,18 +59,36 @@ module TripIt
59
59
  returnResponse(request)
60
60
  end
61
61
 
62
+ def subscribe(resource)
63
+ request = access_token.get("/v1/subscribe/type#{resource}")
64
+ returnResponse(request)
65
+ end
66
+
67
+ def unsubscribe
68
+ request = access_token.get("/v1/unsubscribe")
69
+ returnResponse(request)
70
+ end
71
+
62
72
  def returnResponse(request, format = "")
63
73
  case request
64
- when Net::HTTPOK:
74
+ when Net::HTTPOK
65
75
  if format == "xml"
66
76
  return request.body
67
77
  else
68
78
  return JSON.parse(request.body)
69
79
  end
70
- when Net::HTTPBadRequest: raise BadRequestException, request.body
71
- when Net::HTTPUnauthorized: raise UnauthorizedException, request.body
72
- when Net::HTTPNotFound: raise NotFoundException, request.body
73
- when Net::HTTPInternalServerError: raise ServerError, request.body
80
+ when Net::HTTPBadRequest
81
+ raise BadRequestException, request.body
82
+ when Net::HTTPUnauthorized
83
+ raise UnauthorizedException, request.body
84
+ when Net::HTTPNotFound
85
+ raise NotFoundException, request.body
86
+ when Net::HTTPInternalServerError
87
+ raise ServerError, request.body
88
+ when Net::HTTPForbidden
89
+ raise ForbiddenException, request.body
90
+ when Net::HTTPServiceUnavailable
91
+ raise ServiceUnavailableError, request.body
74
92
  end
75
93
  end
76
94
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{tripit}
8
- s.version = "0.3.5"
8
+ s.version = "0.3.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Alex Kremer"]
12
- s.date = %q{2011-04-07}
12
+ s.date = %q{2011-12-01}
13
13
  s.description = %q{The entire TripIt API encapsulated in Ruby objects}
14
14
  s.email = %q{dev@flextrip.com}
15
15
  s.extra_rdoc_files = [
@@ -111,7 +111,7 @@ Gem::Specification.new do |s|
111
111
  s.homepage = %q{http://github.com/flextrip/tripit}
112
112
  s.licenses = ["MIT"]
113
113
  s.require_paths = ["lib"]
114
- s.rubygems_version = %q{1.7.2}
114
+ s.rubygems_version = %q{1.6.2}
115
115
  s.summary = %q{A Ruby library for talking to the TripIt API}
116
116
  s.test_files = [
117
117
  "test/helper.rb",
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tripit
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 5
10
- version: 0.3.5
9
+ - 6
10
+ version: 0.3.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Alex Kremer
@@ -15,10 +15,12 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-07 00:00:00 Z
18
+ date: 2011-12-01 00:00:00 -07:00
19
+ default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
- version_requirements: &id001 !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
22
24
  none: false
23
25
  requirements:
24
26
  - - ">="
@@ -27,12 +29,12 @@ dependencies:
27
29
  segments:
28
30
  - 0
29
31
  version: "0"
30
- name: shoulda
31
- prerelease: false
32
32
  type: :development
33
- requirement: *id001
33
+ name: shoulda
34
+ version_requirements: *id001
34
35
  - !ruby/object:Gem::Dependency
35
- version_requirements: &id002 !ruby/object:Gem::Requirement
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
36
38
  none: false
37
39
  requirements:
38
40
  - - ~>
@@ -43,12 +45,12 @@ dependencies:
43
45
  - 0
44
46
  - 0
45
47
  version: 1.0.0
46
- name: bundler
47
- prerelease: false
48
48
  type: :development
49
- requirement: *id002
49
+ name: bundler
50
+ version_requirements: *id002
50
51
  - !ruby/object:Gem::Dependency
51
- version_requirements: &id003 !ruby/object:Gem::Requirement
52
+ prerelease: false
53
+ requirement: &id003 !ruby/object:Gem::Requirement
52
54
  none: false
53
55
  requirements:
54
56
  - - ~>
@@ -59,12 +61,12 @@ dependencies:
59
61
  - 5
60
62
  - 2
61
63
  version: 1.5.2
62
- name: jeweler
63
- prerelease: false
64
64
  type: :development
65
- requirement: *id003
65
+ name: jeweler
66
+ version_requirements: *id003
66
67
  - !ruby/object:Gem::Dependency
67
- version_requirements: &id004 !ruby/object:Gem::Requirement
68
+ prerelease: false
69
+ requirement: &id004 !ruby/object:Gem::Requirement
68
70
  none: false
69
71
  requirements:
70
72
  - - ">="
@@ -73,12 +75,12 @@ dependencies:
73
75
  segments:
74
76
  - 0
75
77
  version: "0"
76
- name: rcov
77
- prerelease: false
78
78
  type: :development
79
- requirement: *id004
79
+ name: rcov
80
+ version_requirements: *id004
80
81
  - !ruby/object:Gem::Dependency
81
- version_requirements: &id005 !ruby/object:Gem::Requirement
82
+ prerelease: false
83
+ requirement: &id005 !ruby/object:Gem::Requirement
82
84
  none: false
83
85
  requirements:
84
86
  - - ">="
@@ -87,12 +89,12 @@ dependencies:
87
89
  segments:
88
90
  - 0
89
91
  version: "0"
90
- name: oauth
91
- prerelease: false
92
92
  type: :runtime
93
- requirement: *id005
93
+ name: oauth
94
+ version_requirements: *id005
94
95
  - !ruby/object:Gem::Dependency
95
- version_requirements: &id006 !ruby/object:Gem::Requirement
96
+ prerelease: false
97
+ requirement: &id006 !ruby/object:Gem::Requirement
96
98
  none: false
97
99
  requirements:
98
100
  - - ">="
@@ -101,10 +103,9 @@ dependencies:
101
103
  segments:
102
104
  - 0
103
105
  version: "0"
104
- name: json
105
- prerelease: false
106
106
  type: :runtime
107
- requirement: *id006
107
+ name: json
108
+ version_requirements: *id006
108
109
  description: The entire TripIt API encapsulated in Ruby objects
109
110
  email: dev@flextrip.com
110
111
  executables: []
@@ -205,6 +206,7 @@ files:
205
206
  - test/unit/oauth_test.rb
206
207
  - test/unit/util/param_util_test.rb
207
208
  - tripit.gemspec
209
+ has_rdoc: true
208
210
  homepage: http://github.com/flextrip/tripit
209
211
  licenses:
210
212
  - MIT
@@ -234,7 +236,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
234
236
  requirements: []
235
237
 
236
238
  rubyforge_project:
237
- rubygems_version: 1.7.2
239
+ rubygems_version: 1.6.2
238
240
  signing_key:
239
241
  specification_version: 3
240
242
  summary: A Ruby library for talking to the TripIt API