tripit 0.3.5 → 0.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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