rflak 0.3 → 0.4

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -3,6 +3,15 @@
3
3
  rflak is simple gem to use flaker.pl API. flaker.pl is polish microblogging website. For more information
4
4
  please visit http://flaker.pl.
5
5
 
6
+ From version 0.4 rflak is compatible with Ruby 1.9
7
+
8
+ == Instalation
9
+
10
+ To install rflak gem just simply execute command written below:
11
+ gem install rflak
12
+
13
+ == Docs & Examples
14
+
6
15
  You can simply user two classes Flaker and Traker. Flaker class can fetch all entries scoped with
7
16
  conditions described in flaker's API. You can check API http://blog.flaker.pl/api described in polish.
8
17
 
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  module Rflak
2
3
  # Class represents single comment assigned to 'flak'
3
4
  class Comment < DummyEntry
@@ -0,0 +1,14 @@
1
+ # encoding: UTF-8
2
+ module Rflak
3
+ class DummyEntry
4
+ protected
5
+
6
+
7
+ # Set the user based on passed values
8
+ #
9
+ # options:: Hash, default empty Hash
10
+ def user=(options = {})
11
+ @user = User.new(options)
12
+ end
13
+ end
14
+ end
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  require 'net/http'
2
3
  require 'json'
3
4
  module Rflak
@@ -5,7 +6,8 @@ module Rflak
5
6
  # and can have many comments assigned to it.
6
7
  class Entry < DummyEntry
7
8
  ATTR_LIST = [:user, :permalink, :timestamp, :comments, :time, :text, :title, :has_video, :id,
8
- :has_photo, :link, :has_link, :datetime, :source, :data, :subsource, :comments
9
+ :has_photo, :link, :has_link, :datetime, :source, :data, :subsource, :comments, :parent_id,
10
+ :is_private, :tags, :is_favorited, :is_bookmark
9
11
  ]
10
12
 
11
13
  # define attribute methods public getters and private setters
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  module Rflak
2
3
  # Utility class for fetching 'flak's from the web.
3
4
  #
@@ -117,4 +118,4 @@ module Rflak
117
118
  @perform_url += "/comments:#{ value }"
118
119
  end
119
120
  end
120
- end
121
+ end
@@ -6,4 +6,4 @@ require 'dummy_entry'
6
6
  require 'entry'
7
7
  require 'comment'
8
8
  require 'traker'
9
- require 'flaker'
9
+ require 'flaker'
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  require 'rubygems'
2
3
  require 'httparty'
3
4
 
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  module Rflak
2
3
  # Class represents single user of flaker.pl.
3
4
  class User
@@ -74,25 +75,33 @@ module Rflak
74
75
  end
75
76
 
76
77
 
77
- # Return login list of users that follow user
78
+ # Return login list of users that follow user. Pass <tt>true</tt> as parameter if you want to get extended
79
+ # data (avatar, fiest name, url, sex, ...)
78
80
  #
81
+ # extended:: Boolean, default false
79
82
  # returns:: Array
80
- def followers
83
+ def followers(extended = false)
84
+ request_path = "/type:list/source:followedby/login:#{ @login }"
85
+ request_path << "/extended:true" if extended
81
86
  resp = Flaker.auth_connection(self) do |connection|
82
- connection.get("/type:list/source:followedby/login:#{ @login }")
87
+ connection.get(request_path)
83
88
  end
84
- return resp['followedby']
89
+ resp['followedby']
85
90
  end
86
91
 
87
92
 
88
- # Returns login list of users following by user
93
+ # Returns login list of users following by user. Pass <tt>true</tt> as parameter if you want to get extended
94
+ # data (avatar, fiest name, url, sex, ...)
89
95
  #
96
+ # extended:: Boolean, default false
90
97
  # returns:: Array
91
- def following
98
+ def following(extended = false)
99
+ request_path = "/type:list/source:following/login:#{ @login }"
100
+ request_path << "/extended:true" if extended
92
101
  resp = Flaker.auth_connection(self) do |connection|
93
- connection.get("/type:list/source:following/login:#{ @login }")
102
+ connection.get(request_path)
94
103
  end
95
- return resp['following']
104
+ resp['following']
96
105
  end
97
106
  end
98
107
  end
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  $:.unshift File.join(File.dirname(__FILE__),'..','lib')
2
3
 
3
4
  require 'test/unit'
@@ -15,6 +16,11 @@ class EntryTest < Test::Unit::TestCase
15
16
  "time"=>"Thu, 18 Jun 2009 11:35:09 +0200",
16
17
  "text"=>"Jakiś fajny tekst wrzucony na flakerka. Przepraszam oryginalnego autora - prawnik10 za zmianę ;)",
17
18
  "source"=>"flaker",
19
+ "parent_id" => "1",
20
+ "is_private" => "0",
21
+ "tags" => ["#some_tag"],
22
+ "is_favorited" => "0",
23
+ "is_bookmark" => "0",
18
24
  "data"=>[],
19
25
  "comments" => [
20
26
  { "text" => "pi\u0119knie.... niez\u0142a kasa, bardzo niez\u0142a.",
@@ -80,7 +86,7 @@ class EntryTest < Test::Unit::TestCase
80
86
  end
81
87
 
82
88
 
83
- def test_bookmark_authorized_user
89
+ def test_bookmark_not_authorized_user
84
90
  flexmock(Rflak::Flaker).should_receive(:get).with('/type:auth').and_return(auth_bad_credentials)
85
91
  user = Rflak::User.new(:login => 'login', :api_key => 'bad_key')
86
92
 
@@ -102,6 +102,21 @@ class UserTest < Test::Unit::TestCase
102
102
  end
103
103
 
104
104
 
105
+ def test_get_followers_extended
106
+ followers_list_response = { 'followedby' => %w(seban) }
107
+ flexmock(Rflak::Flaker).should_receive(:get).with('/type:auth').once.and_return(auth_good_credentials)
108
+ flexmock(Rflak::Flaker).should_receive(:get).with("/type:list/source:followedby/login:login/extended:true").once.and_return(followers_list_response).times(1)
109
+
110
+ user = Rflak::User.new(:login => 'login', :api_key => 'good_key')
111
+ assert user.auth
112
+ followers = user.followers(true)
113
+
114
+ assert_kind_of(Array, followers)
115
+ assert_equal 1, followers.size
116
+ followers.each { |f| assert_kind_of(String, f) }
117
+ end
118
+
119
+
105
120
  def test_get_following_not_authorized
106
121
  flexmock(Rflak::Flaker).should_receive(:get).with('/type:auth').and_return(auth_bad_credentials)
107
122
  user = Rflak::User.new(:login => 'login', :api_key => 'bad_key')
@@ -126,6 +141,21 @@ class UserTest < Test::Unit::TestCase
126
141
  end
127
142
 
128
143
 
144
+ def test_get_following_extended
145
+ following_list_response = { 'following' => %w(seban) }
146
+ flexmock(Rflak::Flaker).should_receive(:get).with('/type:auth').once.and_return(auth_good_credentials)
147
+ flexmock(Rflak::Flaker).should_receive(:get).with("/type:list/source:following/login:login/extended:true").once.and_return(following_list_response).times(1)
148
+
149
+ user = Rflak::User.new(:login => 'login', :api_key => 'good_key')
150
+ assert user.auth
151
+ following = user.following(true)
152
+
153
+ assert_kind_of(Array, following)
154
+ assert_equal 1, following.size
155
+ following.each { |f| assert_kind_of(String, f) }
156
+ end
157
+
158
+
129
159
  protected
130
160
 
131
161
 
metadata CHANGED
@@ -1,7 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rflak
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.3"
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 4
8
+ version: "0.4"
5
9
  platform: ruby
6
10
  authors:
7
11
  - Sebastian Nowak
@@ -9,19 +13,22 @@ autorequire:
9
13
  bindir: bin
10
14
  cert_chain: []
11
15
 
12
- date: 2010-01-07 00:00:00 +01:00
16
+ date: 2010-08-05 00:00:00 +02:00
13
17
  default_executable:
14
18
  dependencies:
15
19
  - !ruby/object:Gem::Dependency
16
20
  name: httparty
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
21
+ prerelease: false
22
+ requirement: &id001 !ruby/object:Gem::Requirement
23
+ none: false
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
23
29
  version: "0"
24
- version:
30
+ type: :runtime
31
+ version_requirements: *id001
25
32
  description: |
26
33
  Simple Ruby wrapper for Flaker service. Flaker is service collecting your network activities.
27
34
  For more details go to http://flaker.pl
@@ -46,6 +53,7 @@ files:
46
53
  - test/user_test.rb
47
54
  - test/traker_test.rb
48
55
  - test/flaker_test.rb
56
+ - lib/dummy_entry.rb
49
57
  - README
50
58
  has_rdoc: true
51
59
  homepage: http://github.com/seban/rflak/tree/master
@@ -57,21 +65,25 @@ rdoc_options: []
57
65
  require_paths:
58
66
  - lib
59
67
  required_ruby_version: !ruby/object:Gem::Requirement
68
+ none: false
60
69
  requirements:
61
70
  - - ">="
62
71
  - !ruby/object:Gem::Version
72
+ segments:
73
+ - 0
63
74
  version: "0"
64
- version:
65
75
  required_rubygems_version: !ruby/object:Gem::Requirement
76
+ none: false
66
77
  requirements:
67
78
  - - ">="
68
79
  - !ruby/object:Gem::Version
80
+ segments:
81
+ - 0
69
82
  version: "0"
70
- version:
71
83
  requirements: []
72
84
 
73
85
  rubyforge_project:
74
- rubygems_version: 1.3.5
86
+ rubygems_version: 1.3.7
75
87
  signing_key:
76
88
  specification_version: 3
77
89
  summary: Simple wraper for http://flaker.pl API