whatser 0.3.2 → 0.4.0

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/README.rdoc CHANGED
@@ -9,6 +9,7 @@ The 'Whatser API' Gem is a simple Ruby / Rails wrapper for interacting with What
9
9
  * network connectivity (using httparty)
10
10
  * simple DSL for API resource classes (spots, media, reviews, check ins, etc.)
11
11
  * user spot collection management
12
+ * check-in aggregation
12
13
  * social network integration (facebook, twitter, foursquare, gowalla)
13
14
  * photo uploads
14
15
 
@@ -267,6 +268,20 @@ A data source represents a free or purchasable content stream of collected spots
267
268
  <Whatser::DataSource @review_count=405, @poi_count=0, @price=0.0, @collection_count=0, @name="Rough Guides - Barcelona", @media_count=0, @id=9, @users=[{"name": "premium user", "id": 33}]>
268
269
 
269
270
 
271
+ === Comments
272
+
273
+ A comment is just a short user note that can be associated with other resources. At the moment, you can comment on a POI, Media, or an Activity Feed. Users can also delete their own comments.
274
+
275
+ Whatser.client.comments.poi( poi_id, :page => 1, :per_page => 10 )
276
+ Whatser.client.comments.media( media_id, :page => 1, :per_page => 10 )
277
+ Whatser.client.comments.create( 'activity_feed', feed_id, 'This is a comment. Interesting activity!' )
278
+ Whatser.client.comments.create( 'media', media_id, 'This is a comment on a media. Stunning photo!' )
279
+ m = Whatser.client.comments.create( 'poi', spot_id, 'This is a comment on a spot. Nice spot!' )
280
+ m.delete
281
+
282
+ <Whatser::Comment @body="This is a comment.", @id=101, @user_id=101, @activity_feed_id=null, @user_avatar="http://example.com/images/thumb/4394.jpg", @subject_id=33, @user_name='Whaster User', @created_at="2010-12-24T16:31:38Z", @subject_type='poi', @subject_name="Some Spot">
283
+
284
+
270
285
  === Activity Feeds
271
286
 
272
287
  User activity is recorded by the API, for example when a user adds or tags a POI, befriends another user, or uploads a photo. This activity is recorded in a user's activity feed, a collection of short messages detailing that user's activity. You can view feeds either by user, by spot, or globally.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.2
1
+ 0.4.0
@@ -36,6 +36,7 @@ module Whatser
36
36
  def reviews; Whatser::Review.set(self); end
37
37
  def subscriptions; Whatser::Subscription.set(self); end
38
38
  def tags; Whatser::Tag.set(self); end
39
+ def comments; Whatser::Comment.set(self); end
39
40
  def cities; Whatser::City.set(self); end
40
41
  def feeds; Whatser::ActivityFeed.set(self); end
41
42
 
@@ -0,0 +1,28 @@
1
+ module Whatser
2
+ class Comment < Whatser::Resource
3
+ attr_accessor :id,:user_id,:activity_feed_id,:subject_id,:created_at
4
+ attr_accessor :user_name,:user_avatar,:subject_type,:subject_name,:body
5
+
6
+ class << self
7
+ def poi(poi_id, opts={})
8
+ api_request :get, "/api/poi/#{poi_id}/comments", {:query => opts}
9
+ end
10
+
11
+ def media(media_id, opts={})
12
+ api_request :get, "/api/media/#{media_id}/comments", {:query => opts}
13
+ end
14
+
15
+ def delete(id)
16
+ api_request :delete, "/api/comments/#{id}"
17
+ end
18
+
19
+ def create(resource_name, resource_id, body)
20
+ api_request :post, "/api/#{resource_name}/#{resource_id}/tags", {:body => {'comment' => {'body' => body}} }
21
+ end
22
+ end
23
+
24
+ def delete
25
+ self.class.delete(id)
26
+ end
27
+ end
28
+ end
@@ -62,6 +62,10 @@ module Whatser
62
62
  Whatser::ActivityFeed.set(self.class.client).spot( self.id, opts )
63
63
  end
64
64
 
65
+ def comments(opts={})
66
+ Whatser::Comment.set(self.class.client).poi(id, opts)
67
+ end
68
+
65
69
  def foursquare_connected?
66
70
  !foursquare_id.blank?
67
71
  end
data/lib/whatser.rb CHANGED
@@ -21,6 +21,7 @@ require File.expand_path('../whatser/resources/subscription', __FILE__)
21
21
  require File.expand_path('../whatser/resources/tag', __FILE__)
22
22
  require File.expand_path('../whatser/resources/user', __FILE__)
23
23
  require File.expand_path('../whatser/resources/follow', __FILE__)
24
+ require File.expand_path('../whatser/resources/comment', __FILE__)
24
25
  require File.expand_path('../whatser/resources/activity_feed', __FILE__)
25
26
 
26
27
  require File.expand_path('../whatser/api/service', __FILE__)
@@ -0,0 +1,27 @@
1
+ require 'helper'
2
+
3
+ class TestComment < Test::Unit::TestCase
4
+ def setup
5
+ @client = Whatser::Client.new
6
+ @poi_id = 1
7
+ @media_id = 1
8
+ @comment = Whatser::Comment.new(:poi_id => @poi_id, :body => 'test')
9
+ end
10
+
11
+ def test_poi_list
12
+ assert @client.comments.poi(@poi_id, :page => 1).is_a?(Whatser::Response)
13
+ end
14
+
15
+ def test_media_list
16
+ assert @client.comments.media(@media_id, :page => 1).is_a?(Whatser::Response)
17
+ end
18
+
19
+ def test_create
20
+ assert @client.comments.create('poi', @poi_id, 'testing.').is_a?(Whatser::Response)
21
+ end
22
+
23
+ def test_delete
24
+ assert @client.comments.delete(@poi_id).is_a?(Whatser::Response)
25
+ assert @comment.delete.is_a?(Whatser::Response)
26
+ end
27
+ end
data/test/test_poi.rb CHANGED
@@ -77,6 +77,10 @@ class TestPoi < Test::Unit::TestCase
77
77
  assert @poi.activity(:opt => 'test').is_a?(Whatser::Response)
78
78
  end
79
79
 
80
+ def test_comments
81
+ assert @poi.comments(:opt => 'test').is_a?(Whatser::Response)
82
+ end
83
+
80
84
  def test_details
81
85
  assert @poi.details(:page => 1).is_a?(Whatser::Response)
82
86
  end
data/whatser.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{whatser}
8
- s.version = "0.3.2"
8
+ s.version = "0.4.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Travis Dunn"]
12
- s.date = %q{2011-01-28}
12
+ s.date = %q{2011-02-03}
13
13
  s.description = %q{The 'Whatser API' Gem is a simple Ruby / Rails wrapper for interacting with Whatser's location-based web services (see http://docs.sogeoapi.com for more details).}
14
14
  s.email = %q{cmd@travisdunn.com}
15
15
  s.extra_rdoc_files = [
@@ -41,6 +41,7 @@ Gem::Specification.new do |s|
41
41
  "lib/whatser/resources/check_in.rb",
42
42
  "lib/whatser/resources/city.rb",
43
43
  "lib/whatser/resources/collection.rb",
44
+ "lib/whatser/resources/comment.rb",
44
45
  "lib/whatser/resources/data_source.rb",
45
46
  "lib/whatser/resources/detail.rb",
46
47
  "lib/whatser/resources/follow.rb",
@@ -57,6 +58,7 @@ Gem::Specification.new do |s|
57
58
  "test/test_city.rb",
58
59
  "test/test_client.rb",
59
60
  "test/test_collection.rb",
61
+ "test/test_comment.rb",
60
62
  "test/test_configuration.rb",
61
63
  "test/test_data_source.rb",
62
64
  "test/test_detail.rb",
@@ -90,6 +92,7 @@ Gem::Specification.new do |s|
90
92
  "test/test_city.rb",
91
93
  "test/test_client.rb",
92
94
  "test/test_collection.rb",
95
+ "test/test_comment.rb",
93
96
  "test/test_configuration.rb",
94
97
  "test/test_data_source.rb",
95
98
  "test/test_detail.rb",
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: whatser
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 15
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 3
9
- - 2
10
- version: 0.3.2
8
+ - 4
9
+ - 0
10
+ version: 0.4.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Travis Dunn
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-28 00:00:00 +01:00
18
+ date: 2011-02-03 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -140,6 +140,7 @@ files:
140
140
  - lib/whatser/resources/check_in.rb
141
141
  - lib/whatser/resources/city.rb
142
142
  - lib/whatser/resources/collection.rb
143
+ - lib/whatser/resources/comment.rb
143
144
  - lib/whatser/resources/data_source.rb
144
145
  - lib/whatser/resources/detail.rb
145
146
  - lib/whatser/resources/follow.rb
@@ -156,6 +157,7 @@ files:
156
157
  - test/test_city.rb
157
158
  - test/test_client.rb
158
159
  - test/test_collection.rb
160
+ - test/test_comment.rb
159
161
  - test/test_configuration.rb
160
162
  - test/test_data_source.rb
161
163
  - test/test_detail.rb
@@ -217,6 +219,7 @@ test_files:
217
219
  - test/test_city.rb
218
220
  - test/test_client.rb
219
221
  - test/test_collection.rb
222
+ - test/test_comment.rb
220
223
  - test/test_configuration.rb
221
224
  - test/test_data_source.rb
222
225
  - test/test_detail.rb