osub 0.0.4 → 0.0.5

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.
@@ -40,15 +40,37 @@ module OSub
40
40
  change_subscription(:unsubscribe, hub_url, token)
41
41
  end
42
42
 
43
- def change_subscription(mode, hub_url, token)
44
- res = Net::HTTP.post_form(URI.parse(hub_url),
45
- { 'hub.mode' => mode.to_s,
46
- 'hub.callback' => @callback_url,
47
- 'hub.verify' => 'async',
48
- 'hub.verify_token' => token,
49
- 'hub.lease_seconds' => '',
50
- 'hub.secret' => @secret,
51
- 'hub.topic' => @topic_url})
43
+ def change_subscription(mode, hub_url, token, redirect_limit = 10)
44
+ hub_uri = URI.parse(hub_url)
45
+
46
+ req = Net::HTTP::Post.new(hub_uri.request_uri)
47
+ req.set_form_data({
48
+ 'hub.mode' => mode.to_s,
49
+ 'hub.callback' => @callback_url,
50
+ 'hub.verify' => async ? 'async' : 'sync',
51
+ 'hub.verify_token' => token,
52
+ 'hub.lease_seconds' => '',
53
+ 'hub.secret' => @secret,
54
+ 'hub.topic' => @topic_url
55
+ })
56
+
57
+ http = Net::HTTP.new(hub_uri.hostname, hub_uri.port)
58
+ if hub_uri.scheme == 'https'
59
+ http.use_ssl = true
60
+ http.verify_mode = OpenSSL::SSL::VERIFY_PEER
61
+ end
62
+
63
+ response = http.request(req)
64
+
65
+ if response.is_a?(Net::HTTPRedirection) && redirect_limit > 0
66
+ location = response['location']
67
+ self.change_subscription(mode, hub_url, token, redirect_limit - 1)
68
+ else
69
+ response
70
+ end
71
+
72
+ rescue OpenSSL::SSL::SSLError
73
+ return nil
52
74
  end
53
75
 
54
76
  def verify_subscription(token)
data/lib/osub/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module OSub
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
data/lib/osub.rb CHANGED
@@ -1,2 +1,3 @@
1
+ require_relative 'osub/subscriber'
1
2
  require_relative 'osub/subscription'
2
- require_relative 'osub/subscribers'
3
+
metadata CHANGED
@@ -1,98 +1,86 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: osub
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 0
8
- - 4
9
- version: 0.0.4
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.5
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Hackers of the Severed Hand
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2011-03-15 00:00:00 -04:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2014-10-06 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: ruby-hmac
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
31
22
  type: :runtime
32
- version_requirements: *id001
33
- - !ruby/object:Gem::Dependency
34
- name: ostatus
35
23
  prerelease: false
36
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
37
25
  none: false
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- segments:
42
- - 0
43
- version: "0"
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: ostatus
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
44
38
  type: :runtime
45
- version_requirements: *id002
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
46
  description: This is a simple implementation of a subscriber in the PubSubHubbub protocol.
47
- email:
47
+ email:
48
48
  - hotsh@xomb.org
49
49
  executables: []
50
-
51
50
  extensions: []
52
-
53
51
  extra_rdoc_files: []
54
-
55
- files:
52
+ files:
56
53
  - .gitignore
57
54
  - Gemfile
58
55
  - LICENSE
59
56
  - Rakefile
60
57
  - lib/osub.rb
58
+ - lib/osub/subscriber.rb
61
59
  - lib/osub/subscribers.rb
62
- - lib/osub/subscription.rb
63
60
  - lib/osub/version.rb
64
61
  - osub.gemspec
65
- has_rdoc: true
66
62
  homepage: http://github.com/hotsh/osub
67
63
  licenses: []
68
-
69
64
  post_install_message:
70
65
  rdoc_options: []
71
-
72
- require_paths:
66
+ require_paths:
73
67
  - lib
74
- required_ruby_version: !ruby/object:Gem::Requirement
68
+ required_ruby_version: !ruby/object:Gem::Requirement
75
69
  none: false
76
- requirements:
77
- - - ">="
78
- - !ruby/object:Gem::Version
79
- segments:
80
- - 0
81
- version: "0"
82
- required_rubygems_version: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ! '>='
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ required_rubygems_version: !ruby/object:Gem::Requirement
83
75
  none: false
84
- requirements:
85
- - - ">="
86
- - !ruby/object:Gem::Version
87
- segments:
88
- - 0
89
- version: "0"
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
90
80
  requirements: []
91
-
92
81
  rubyforge_project: osub
93
- rubygems_version: 1.3.7
82
+ rubygems_version: 1.8.24
94
83
  signing_key:
95
84
  specification_version: 3
96
85
  summary: This is a simple implementation of a subscriber in the PubSubHubbub protocol.
97
86
  test_files: []
98
-