activitystreams 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc ADDED
@@ -0,0 +1,56 @@
1
+ = ActivityStreams
2
+
3
+ A RubyGem for ActivityStreams Publishers
4
+
5
+ == Installation
6
+
7
+ gem install activitystreams
8
+
9
+ == Resources
10
+
11
+ ActivityStreams Official Site (http://activitystrea.ms/)
12
+ JSON Activity Streams 1.0 (http://activitystrea.ms/specs/json/1.0/)
13
+
14
+ == Examples
15
+
16
+ === Stream Serialization
17
+
18
+ Coming Soon..
19
+
20
+ === Single Activity Serialization
21
+
22
+ You can see more examples in spec/serializations/*
23
+
24
+ actor = ActivityStreams::Object::Person.new(
25
+ :id => 'example.com/nov',
26
+ :display_name => 'Nov Matake'
27
+ )
28
+ place = ActivityStreams::Object::Place.new(
29
+ :display_name => 'Starbacks Coffee Shibuya',
30
+ :position => ActivityStreams::Object::Place::GeoLocation.new(
31
+ :latitude => 35.0,
32
+ :longitude => 140.0,
33
+ :altitude => 100
34
+ )
35
+ )
36
+ activity = ActivityStreams::Activity.new(
37
+ :actor => actor,
38
+ :object => place,
39
+ :verb => ActivityStreams::Verb::Checkin.new,
40
+ :published => Time.now.utc
41
+ )
42
+ activity.to_json
43
+
44
+ == Note on Patches/Pull Requests
45
+
46
+ * Fork the project.
47
+ * Make your feature addition or bug fix.
48
+ * Add tests for it. This is important so I don't break it in a
49
+ future version unintentionally.
50
+ * Commit, do not mess with rakefile, version, or history.
51
+ (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
52
+ * Send me a pull request. Bonus points for topic branches.
53
+
54
+ == Copyright
55
+
56
+ Copyright (c) 2011 nov matake. See LICENSE for details.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.0.3
@@ -0,0 +1,4 @@
1
+ module ActivityStreams
2
+ class Verb::Post < Verb
3
+ end
4
+ end
@@ -0,0 +1,47 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Checkin a Place' do
4
+ let(:verb) { ActivityStreams::Verb::Checkin.new }
5
+ let(:published) { Time.now.utc }
6
+ let :actor do
7
+ ActivityStreams::Object::Person.new(
8
+ :id => 'example.com/nov',
9
+ :display_name => 'Nov Matake'
10
+ )
11
+ end
12
+ let :object do
13
+ ActivityStreams::Object::Place.new(
14
+ :display_name => 'Starbacks Coffee Shibuya',
15
+ :position => ActivityStreams::Object::Place::GeoLocation.new(
16
+ :latitude => 35.0,
17
+ :longitude => 140.0,
18
+ :altitude => 100
19
+ )
20
+ )
21
+ end
22
+ let :activity do
23
+ ActivityStreams::Activity.new(
24
+ :actor => actor,
25
+ :object => object,
26
+ :verb => verb,
27
+ :published => published
28
+ )
29
+ end
30
+
31
+ it 'should be well formatted' do
32
+ JSON.parse(activity.to_json).should == {
33
+ 'actor' => {
34
+ 'id' => 'example.com/nov',
35
+ 'displayName' => 'Nov Matake',
36
+ 'objectType' => 'person'
37
+ },
38
+ 'verb' => 'checkin',
39
+ 'published' => published.iso8601,
40
+ 'object' => {
41
+ 'objectType' => 'place',
42
+ 'displayName' => 'Starbacks Coffee Shibuya',
43
+ 'position' => '+35.0+140.0+100'
44
+ }
45
+ }
46
+ end
47
+ end
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Post a Bookmark' do
4
+ let(:verb) { ActivityStreams::Verb::Post.new }
5
+ let(:published) { Time.now.utc }
6
+ let :actor do
7
+ ActivityStreams::Object::Person.new(
8
+ :id => 'example.com/nov',
9
+ :display_name => 'Nov Matake'
10
+ )
11
+ end
12
+ let :object do
13
+ ActivityStreams::Object::Bookmark.new(
14
+ :target_url => 'http://bookmark.example.com/links/12345'
15
+ )
16
+ end
17
+ let :activity do
18
+ ActivityStreams::Activity.new(
19
+ :actor => actor,
20
+ :object => object,
21
+ :verb => verb,
22
+ :published => published
23
+ )
24
+ end
25
+
26
+ it 'should be well formatted' do
27
+ JSON.parse(activity.to_json).should == {
28
+ 'actor' => {
29
+ 'id' => 'example.com/nov',
30
+ 'displayName' => 'Nov Matake',
31
+ 'objectType' => 'person'
32
+ },
33
+ 'verb' => 'post',
34
+ 'published' => published.iso8601,
35
+ 'object' => {
36
+ 'objectType' => 'bookmark',
37
+ 'targetUrl' => 'http://bookmark.example.com/links/12345'
38
+ }
39
+ }
40
+ end
41
+ end
@@ -0,0 +1,74 @@
1
+ require 'spec_helper'
2
+
3
+ # NOTE:
4
+ # I'm not sure this is proper object type usage,
5
+ # but the official document uses 'blog' as a object type in 'Example Activities' Section (3.1).
6
+ # ref) http://activitystrea.ms/specs/json/1.0/
7
+
8
+ describe 'Post an Article on a Blog' do
9
+ let(:verb) { ActivityStreams::Verb::Post.new }
10
+ let(:published) { Time.now.utc }
11
+ let :actor do
12
+ ActivityStreams::Object::Person.new(
13
+ :id => 'tag:example.org,2011:martin',
14
+ :display_name => 'Nov Matake',
15
+ :url => 'http://example.org/martin',
16
+ :image => ActivityStreams::MediaLink.new(
17
+ :url => 'http://example.org/martin/image',
18
+ :width => 250,
19
+ :height => 250
20
+ )
21
+ )
22
+ end
23
+ let :object do
24
+ ActivityStreams::Object.new(
25
+ :id => 'tag:example.org,2011:abc123/xyz',
26
+ :url => 'http://example.org/blog/2011/02/entry'
27
+ )
28
+ end
29
+ let :target do
30
+ ActivityStreams::Object.new(
31
+ :object_type => 'blog',
32
+ :id => 'tag:example.org,2011:abc123',
33
+ :display_name => 'Martin\'s Blog',
34
+ :url => 'http://blog.example.com'
35
+ )
36
+ end
37
+ let :activity do
38
+ ActivityStreams::Activity.new(
39
+ :actor => actor,
40
+ :object => object,
41
+ :target => target,
42
+ :verb => verb,
43
+ :published => published
44
+ )
45
+ end
46
+
47
+ it 'should be well formatted' do
48
+ JSON.parse(activity.to_json).should == {
49
+ 'published' => published.iso8601,
50
+ 'actor' => {
51
+ 'url' => 'http://example.org/martin',
52
+ 'objectType' => 'person',
53
+ 'id' => 'tag:example.org,2011:martin',
54
+ 'image' => {
55
+ 'url' => 'http://example.org/martin/image',
56
+ 'width' => 250,
57
+ 'height' => 250
58
+ },
59
+ 'displayName' => 'Nov Matake'
60
+ },
61
+ 'verb' => 'post',
62
+ 'object' => {
63
+ 'url' => 'http://example.org/blog/2011/02/entry',
64
+ 'id' => 'tag:example.org,2011:abc123/xyz'
65
+ },
66
+ 'target' => {
67
+ 'url' => 'http://blog.example.com',
68
+ 'objectType' => 'blog',
69
+ 'id' => 'tag:example.org,2011:abc123',
70
+ 'displayName' => 'Martin\'s Blog'
71
+ }
72
+ }
73
+ end
74
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activitystreams
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - nov matake
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-07-08 00:00:00 Z
18
+ date: 2011-07-12 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: json
@@ -149,6 +149,7 @@ files:
149
149
  - .gitignore
150
150
  - Gemfile
151
151
  - LICENSE
152
+ - README.rdoc
152
153
  - Rakefile
153
154
  - VERSION
154
155
  - activitystreams.gemspec
@@ -195,6 +196,7 @@ files:
195
196
  - lib/activitystreams/verb/like.rb
196
197
  - lib/activitystreams/verb/make_friend.rb
197
198
  - lib/activitystreams/verb/play.rb
199
+ - lib/activitystreams/verb/post.rb
198
200
  - lib/activitystreams/verb/receive.rb
199
201
  - lib/activitystreams/verb/remove.rb
200
202
  - lib/activitystreams/verb/remove_friend.rb
@@ -235,6 +237,9 @@ files:
235
237
  - spec/activitystreams/verb/rsvp_maybe_spec.rb
236
238
  - spec/activitystreams/verb_spec.rb
237
239
  - spec/activitystreams_spec.rb
240
+ - spec/serializations/checkin_a_place_spec.rb
241
+ - spec/serializations/post_a_bookmark_spec.rb
242
+ - spec/serializations/post_an_article_on_a_blog_spec.rb
238
243
  - spec/spec_helper.rb
239
244
  homepage: http://github.com/nov/activitystreams
240
245
  licenses: []
@@ -295,4 +300,7 @@ test_files:
295
300
  - spec/activitystreams/verb/rsvp_maybe_spec.rb
296
301
  - spec/activitystreams/verb_spec.rb
297
302
  - spec/activitystreams_spec.rb
303
+ - spec/serializations/checkin_a_place_spec.rb
304
+ - spec/serializations/post_a_bookmark_spec.rb
305
+ - spec/serializations/post_an_article_on_a_blog_spec.rb
298
306
  - spec/spec_helper.rb