pingfm 2.1.2 → 2.1.3

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.
@@ -2,6 +2,7 @@ PATH
2
2
  remote: .
3
3
  specs:
4
4
  pingfm (2.1.2)
5
+ bundler
5
6
  slop
6
7
 
7
8
  GEM
data/bin/pingfm CHANGED
@@ -41,7 +41,10 @@ rescue Pingfm::ConfigNotFound => error
41
41
  Pingfm::Config['app_key'] = app_key
42
42
  end
43
43
 
44
- client = Pingfm::Client.new(app_key)
44
+ options = {
45
+ :debug => opts.debug?,
46
+ }
47
+ client = Pingfm::Client.new(app_key, options)
45
48
  response = client.post(message)
46
49
 
47
50
  if response['status'] == 'OK'
@@ -4,5 +4,5 @@ require 'pingfm/client'
4
4
  require 'pingfm/config'
5
5
 
6
6
  module Pingfm
7
- VERSION = '2.1.2'
7
+ VERSION = '2.1.3'
8
8
  end
@@ -1,3 +1,4 @@
1
+ require 'base64'
1
2
  require 'net/http'
2
3
  require 'rexml/document' # TODO: Rewrite this to use something faster (Nokogiri, possibly).
3
4
 
@@ -14,9 +15,18 @@ module Pingfm
14
15
  API_URL = 'http://api.ping.fm/v1'
15
16
 
16
17
  attr_reader :user_app_key
18
+ attr_reader :options
17
19
 
18
- def initialize(user_app_key)
20
+ # You can pass an <tt>options</tt> hash:
21
+ # [debug] Boolean used when testing to avoid actually posting a message.
22
+ # [decode_body] If <tt>true</tt>, the 'body' of appropriate elements will be Base64 decoded; default is <tt>false</tt>.
23
+ def initialize(user_app_key, options = {})
19
24
  @user_app_key = user_app_key
25
+ @options = {
26
+ # Defaults:
27
+ :debug => false,
28
+ :decode_body => false,
29
+ }.merge(options)
20
30
  end
21
31
 
22
32
  # Returns the last <tt>limit</tt> messages a user has posted through Ping.fm.
@@ -51,7 +61,8 @@ module Pingfm
51
61
  else
52
62
  latest['messages'].last['location'] = ''
53
63
  end
54
- latest['messages'].last['body'] = message.elements['*/body'].text
64
+ encoded_body = message.elements['*/body'].text
65
+ latest['messages'].last['body'] = @options[:decode_body] ? Base64.decode64(encoded_body) : encoded_body
55
66
  latest['messages'].last['services'] = []
56
67
  message.elements.each('services/service') do |service|
57
68
  latest['messages'].last['services'].push({'id' => service.attributes['id'], 'name' => service.attributes['name']})
@@ -99,21 +110,20 @@ module Pingfm
99
110
  # Arguments:
100
111
  # [body] Message body.
101
112
  #
102
- # Optional <tt>args</tt>:
113
+ # Optional <tt>opts</tt>:
103
114
  # [title] Title of the posted message; title is required for 'blog' post method.
104
115
  # [post_method] Posting method; either 'default', 'blog', 'microblog' or 'status'.
105
116
  # [service] A single service to post to.
106
- # [debug] Set debug to 1 to avoid posting test data.
107
117
  #
108
118
  # If successful returns:
109
119
  # {'status' => 'OK'}
110
120
  # If unsuccessful returns:
111
121
  # {'status' => 'FAIL', 'message' => 'message what went wrong'}
112
- def post(body, opts = { :title => '', :post_method => 'default', :service => '', :debug => false })
122
+ def post(body, opts = { :title => '', :post_method => 'default', :service => '' })
113
123
  response = get_response('user.post',
114
124
  'body' => body, 'title' => opts[:title],
115
125
  'post_method' => opts[:post_method], 'service' => opts[:service],
116
- 'debug' => (opts[:debug] ? 1 : 0))
126
+ 'debug' => (@options[:debug] ? 1 : 0))
117
127
 
118
128
  if response.elements['rsp'].attributes['status'] == 'OK'
119
129
  return status_ok
@@ -177,18 +187,17 @@ module Pingfm
177
187
  # [body] Message body.
178
188
  # [trigger] Custom trigger the user has defined from the Ping.fm website.
179
189
  #
180
- # Optional arguments:
190
+ # Optional <tt>opts</tt>:
181
191
  # [title] Title of the posted message; title is required for 'blog' post method.
182
- # [debug] Set debug to +true+ to avoid posting test data.
183
192
  #
184
193
  # If successful returns:
185
194
  # {'status' => 'OK'}
186
195
  # If unsuccessful returns:
187
196
  # {'status' => 'FAIL', 'message' => 'message what went wrong'}
188
- def tpost(body, trigger, opts = { :title => '', :debug => false })
197
+ def tpost(body, trigger, opts = { :title => '' })
189
198
  response = get_response('user.tpost',
190
199
  'body' => body, 'title' => opts[:title],
191
- 'trigger' => trigger, 'debug' => (opts[:debug] ? 1 : 0))
200
+ 'trigger' => trigger, 'debug' => (@options[:debug] ? 1 : 0))
192
201
  if response.elements['rsp'].attributes['status'] == 'OK'
193
202
  return status_ok
194
203
  else
@@ -14,6 +14,7 @@ Gem::Specification.new do |s|
14
14
  s.summary = %q{A Ping.fm Ruby library.}
15
15
  s.description = %q{Ping.fm (http://ping.fm) is a simple service that makes updating your social networks a snap, and this it's Ruby library.}
16
16
 
17
+ s.add_dependency('bundler')
17
18
  s.add_dependency('slop')
18
19
  s.add_development_dependency('rspec', '>= 2.6.0')
19
20
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pingfm
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 2.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,11 +11,22 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2011-06-12 00:00:00.000000000Z
14
+ date: 2011-06-13 00:00:00.000000000Z
15
15
  dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: bundler
18
+ requirement: &68794930 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ! '>='
22
+ - !ruby/object:Gem::Version
23
+ version: '0'
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: *68794930
16
27
  - !ruby/object:Gem::Dependency
17
28
  name: slop
18
- requirement: &76732520 !ruby/object:Gem::Requirement
29
+ requirement: &68794440 !ruby/object:Gem::Requirement
19
30
  none: false
20
31
  requirements:
21
32
  - - ! '>='
@@ -23,10 +34,10 @@ dependencies:
23
34
  version: '0'
24
35
  type: :runtime
25
36
  prerelease: false
26
- version_requirements: *76732520
37
+ version_requirements: *68794440
27
38
  - !ruby/object:Gem::Dependency
28
39
  name: rspec
29
- requirement: &76731170 !ruby/object:Gem::Requirement
40
+ requirement: &68793840 !ruby/object:Gem::Requirement
30
41
  none: false
31
42
  requirements:
32
43
  - - ! '>='
@@ -34,7 +45,7 @@ dependencies:
34
45
  version: 2.6.0
35
46
  type: :development
36
47
  prerelease: false
37
- version_requirements: *76731170
48
+ version_requirements: *68793840
38
49
  description: Ping.fm (http://ping.fm) is a simple service that makes updating your
39
50
  social networks a snap, and this it's Ruby library.
40
51
  email: