trunkly 0.1.1 → 0.2.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.
Files changed (5) hide show
  1. data/CHANGELOG +4 -1
  2. data/README +11 -1
  3. data/lib/trunkly.rb +40 -20
  4. data/lib/trunkly/version.rb +1 -1
  5. metadata +5 -5
data/CHANGELOG CHANGED
@@ -1,2 +1,5 @@
1
- v0.1.0 initial version
1
+ v0.2.0 added support for timeline API
2
2
 
3
+ v0.1.1 fixed a few bugs with Ruby 1.8.7
4
+
5
+ v0.1.0 initial version
data/README CHANGED
@@ -80,7 +80,17 @@ t.next_page #returns results from 11..20
80
80
  t.prev_page #returns restult 1..10
81
81
 
82
82
 
83
- 5) Save a link
83
+ 5) Timeline
84
+
85
+ To get the list of your friends link (called Timeline)
86
+
87
+ t = Trunkly::Trunkly.new('my_api_key_goes_here')
88
+ links = t.timeline #this retrieves 100 links
89
+
90
+ You can apply the usual filters and pagination parameters
91
+
92
+
93
+ 6) Save a link
84
94
 
85
95
  Saving a link is very simple
86
96
 
@@ -11,30 +11,25 @@ module Trunkly
11
11
 
12
12
  LINKS = "http://trunk.ly/api/v1/links/"
13
13
  LINK = "http://trunk.ly/api/v1/link/"
14
+ TIMELINE = "http://trunk.ly/api/v1/timeline/"
14
15
 
15
16
  def initialize(key = nil)
16
17
  @api_key = key
17
18
  @last_used_params = {}
19
+ @last_command = :links
18
20
  @next_page, @prev_page = 0, 0
19
21
  end
20
22
 
23
+ def timeline(params = {})
24
+ @last_used_params = params
25
+ @last_command = :timeline
26
+ retrieve_links_from(get_timeline(params))
27
+ end
28
+
21
29
  def links(params = {})
22
- @last_used_params = params
23
- response = Net::HTTP.get_response(get_links(params))
24
- case response
25
- when Net::HTTPUnauthorized then
26
- raise AuthorizationError, "Unauthorized: no or wrong api_key"
27
- when Net::HTTPSuccess
28
- links = []
29
- result = JSON.parse(response.body)
30
- @prev_page, @next_page = result['prev_page'] || 0, result['next_page'] || 0
31
- result['links'].each do |it|
32
- links << Link.new(it)
33
- end
34
- links
35
- else
36
- raise ApiError, "Exception trying to get links: "+response.body.to_s
37
- end
30
+ @last_used_params = params
31
+ @last_command = :links
32
+ retrieve_links_from get_links(params)
38
33
  end
39
34
 
40
35
  def save(link = Link.new)
@@ -53,12 +48,12 @@ module Trunkly
53
48
 
54
49
  def next_page
55
50
  @last_used_params[:page] = @next_page
56
- links @last_used_params
51
+ send @last_command.to_sym, @last_used_params
57
52
  end
58
53
 
59
54
  def prev_page
60
55
  @last_used_params[:page] = @prev_page
61
- links @last_used_params
56
+ send @last_command.to_sym, @last_used_params
62
57
  end
63
58
  alias :previous_page :prev_page
64
59
 
@@ -75,10 +70,36 @@ module Trunkly
75
70
 
76
71
  private
77
72
 
73
+ def retrieve_links_from(url)
74
+ response = Net::HTTP.get_response(url)
75
+ case response
76
+ when Net::HTTPUnauthorized then
77
+ raise AuthorizationError, "Unauthorized: no or wrong api_key"
78
+ when Net::HTTPSuccess
79
+ extract_links_from response
80
+ else
81
+ raise ApiError, "Exception trying to get links: "+response.body.to_s
82
+ end
83
+ end
84
+
85
+ def extract_links_from(response)
86
+ result = JSON.parse(response.body)
87
+ @prev_page, @next_page = result['prev_page'] || 0, result['next_page'] || 0
88
+ result['links'].map do |it|
89
+ Link.new(it)
90
+ end
91
+ end
92
+
93
+
94
+ def get_timeline(params = {})
95
+ URI.parse(URI.escape(TIMELINE) + query_string(params))
96
+ end
97
+
98
+
78
99
  def get_links(params = {})
79
100
  userpart = params[:user] ? "#{params[:user]}/" : "";
80
101
  URI.parse(URI.escape(LINKS + userpart + query_string(params)))
81
- end
102
+ end
82
103
 
83
104
  def query_string(params = {})
84
105
  query_string = ""
@@ -86,7 +107,6 @@ module Trunkly
86
107
  query_string += "&#{k.to_s}=#{v}" unless k == :user
87
108
  end
88
109
  query_string += "&api_key=#{@api_key}" if @api_key #adds api key if available
89
- p query_string[0]
90
110
  query_string[0] = '?' if query_string[0] == 38 #replace initial &
91
111
  query_string
92
112
  end
@@ -1,3 +1,3 @@
1
1
  module Trunkly
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trunkly
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 1
9
- - 1
10
- version: 0.1.1
8
+ - 2
9
+ - 0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Filippo Diotalevi
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-12 00:00:00 +01:00
18
+ date: 2011-01-13 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency