redfinger 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -10,7 +10,7 @@ begin
10
10
  gem.email = "michael@intridea.com"
11
11
  gem.homepage = "http://github.com/mbleigh/redfinger"
12
12
  gem.authors = ["Michael Bleigh"]
13
- gem.add_dependency "rest-client"
13
+ gem.add_dependency "rest-client", ">= 1.5.0"
14
14
  gem.add_dependency "nokogiri", ">= 1.4.0"
15
15
  gem.add_dependency "hashie"
16
16
  gem.add_development_dependency "rspec", ">= 1.2.9"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.3
1
+ 0.0.4
@@ -9,9 +9,9 @@ module Redfinger
9
9
  # webfinger process does not appear safe, such as
10
10
  # mismatched domains or an unverified XRD signature.
11
11
  class SecurityException < StandardError; end
12
-
12
+
13
13
  # Finger the provided e-mail address.
14
14
  def self.finger(email)
15
15
  Redfinger::Client.new(email).finger
16
16
  end
17
- end
17
+ end
@@ -5,34 +5,34 @@ require 'uri'
5
5
  module Redfinger
6
6
  class Client
7
7
  attr_accessor :account, :domain, :uri_template
8
-
8
+
9
9
  def initialize(email, uri_template = nil)
10
10
  self.account = urify(email)
11
11
  self.domain = account.split('@').last
12
12
  end
13
-
13
+
14
14
  def finger
15
15
  self.uri_template ||= retrieve_template_from_xrd
16
- Finger.new RestClient.get(swizzle)
16
+ Finger.new RestClient.get(swizzle).body
17
17
  end
18
-
18
+
19
19
  def xrd_url(ssl = true)
20
20
  "http#{'s' if ssl}://#{domain}/.well-known/host-meta"
21
21
  end
22
-
22
+
23
23
  private
24
-
24
+
25
25
  def swizzle
26
26
  uri_template.gsub '{uri}', URI.escape(self.account)
27
27
  end
28
-
28
+
29
29
  def retrieve_template_from_xrd(ssl = true)
30
- doc = Nokogiri::XML::Document.parse(RestClient.get(xrd_url(ssl)))
31
-
30
+ doc = Nokogiri::XML::Document.parse(RestClient.get(xrd_url(ssl)).body)
31
+
32
32
  unless doc.at_xpath('.//hm:Host').content == self.domain
33
33
  raise Redfinger::SecurityException, "The XRD document's host did not match the account's host."
34
34
  end
35
-
35
+
36
36
  doc.at('Link[rel=lrdd]').attribute('template').value
37
37
  rescue Errno::ECONNREFUSED, RestClient::ResourceNotFound
38
38
  if ssl
@@ -41,10 +41,10 @@ module Redfinger
41
41
  raise Redfinger::ResourceNotFound, "Unable to find the host XRD file."
42
42
  end
43
43
  end
44
-
44
+
45
45
  def urify(email)
46
46
  email = "acct:#{email}" unless email.include?("acct:")
47
47
  email
48
48
  end
49
49
  end
50
- end
50
+ end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{redfinger}
8
- s.version = "0.0.3"
8
+ s.version = "0.0.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Michael Bleigh"]
12
- s.date = %q{2010-02-13}
12
+ s.date = %q{2010-06-24}
13
13
  s.description = %q{A Ruby Webfinger client}
14
14
  s.email = %q{michael@intridea.com}
15
15
  s.extra_rdoc_files = [
@@ -37,7 +37,7 @@ Gem::Specification.new do |s|
37
37
  s.homepage = %q{http://github.com/mbleigh/redfinger}
38
38
  s.rdoc_options = ["--charset=UTF-8"]
39
39
  s.require_paths = ["lib"]
40
- s.rubygems_version = %q{1.3.5}
40
+ s.rubygems_version = %q{1.3.6}
41
41
  s.summary = %q{A Ruby WebFinger client.}
42
42
  s.test_files = [
43
43
  "spec/redfinger/client_spec.rb",
@@ -50,20 +50,20 @@ Gem::Specification.new do |s|
50
50
  s.specification_version = 3
51
51
 
52
52
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
53
- s.add_runtime_dependency(%q<rest-client>, [">= 0"])
53
+ s.add_runtime_dependency(%q<rest-client>, [">= 1.5.0"])
54
54
  s.add_runtime_dependency(%q<nokogiri>, [">= 1.4.0"])
55
55
  s.add_runtime_dependency(%q<hashie>, [">= 0"])
56
56
  s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
57
57
  s.add_development_dependency(%q<webmock>, [">= 0"])
58
58
  else
59
- s.add_dependency(%q<rest-client>, [">= 0"])
59
+ s.add_dependency(%q<rest-client>, [">= 1.5.0"])
60
60
  s.add_dependency(%q<nokogiri>, [">= 1.4.0"])
61
61
  s.add_dependency(%q<hashie>, [">= 0"])
62
62
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
63
63
  s.add_dependency(%q<webmock>, [">= 0"])
64
64
  end
65
65
  else
66
- s.add_dependency(%q<rest-client>, [">= 0"])
66
+ s.add_dependency(%q<rest-client>, [">= 1.5.0"])
67
67
  s.add_dependency(%q<nokogiri>, [">= 1.4.0"])
68
68
  s.add_dependency(%q<hashie>, [">= 0"])
69
69
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redfinger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 4
9
+ version: 0.0.4
5
10
  platform: ruby
6
11
  authors:
7
12
  - Michael Bleigh
@@ -9,59 +14,75 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-02-13 00:00:00 -05:00
17
+ date: 2010-06-24 00:00:00 -04:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: rest-client
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
23
- version: "0"
24
- version:
27
+ segments:
28
+ - 1
29
+ - 5
30
+ - 0
31
+ version: 1.5.0
32
+ type: :runtime
33
+ version_requirements: *id001
25
34
  - !ruby/object:Gem::Dependency
26
35
  name: nokogiri
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
30
38
  requirements:
31
39
  - - ">="
32
40
  - !ruby/object:Gem::Version
41
+ segments:
42
+ - 1
43
+ - 4
44
+ - 0
33
45
  version: 1.4.0
34
- version:
46
+ type: :runtime
47
+ version_requirements: *id002
35
48
  - !ruby/object:Gem::Dependency
36
49
  name: hashie
37
- type: :runtime
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
40
52
  requirements:
41
53
  - - ">="
42
54
  - !ruby/object:Gem::Version
55
+ segments:
56
+ - 0
43
57
  version: "0"
44
- version:
58
+ type: :runtime
59
+ version_requirements: *id003
45
60
  - !ruby/object:Gem::Dependency
46
61
  name: rspec
47
- type: :development
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
62
+ prerelease: false
63
+ requirement: &id004 !ruby/object:Gem::Requirement
50
64
  requirements:
51
65
  - - ">="
52
66
  - !ruby/object:Gem::Version
67
+ segments:
68
+ - 1
69
+ - 2
70
+ - 9
53
71
  version: 1.2.9
54
- version:
72
+ type: :development
73
+ version_requirements: *id004
55
74
  - !ruby/object:Gem::Dependency
56
75
  name: webmock
57
- type: :development
58
- version_requirement:
59
- version_requirements: !ruby/object:Gem::Requirement
76
+ prerelease: false
77
+ requirement: &id005 !ruby/object:Gem::Requirement
60
78
  requirements:
61
79
  - - ">="
62
80
  - !ruby/object:Gem::Version
81
+ segments:
82
+ - 0
63
83
  version: "0"
64
- version:
84
+ type: :development
85
+ version_requirements: *id005
65
86
  description: A Ruby Webfinger client
66
87
  email: michael@intridea.com
67
88
  executables: []
@@ -101,18 +122,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
101
122
  requirements:
102
123
  - - ">="
103
124
  - !ruby/object:Gem::Version
125
+ segments:
126
+ - 0
104
127
  version: "0"
105
- version:
106
128
  required_rubygems_version: !ruby/object:Gem::Requirement
107
129
  requirements:
108
130
  - - ">="
109
131
  - !ruby/object:Gem::Version
132
+ segments:
133
+ - 0
110
134
  version: "0"
111
- version:
112
135
  requirements: []
113
136
 
114
137
  rubyforge_project:
115
- rubygems_version: 1.3.5
138
+ rubygems_version: 1.3.6
116
139
  signing_key:
117
140
  specification_version: 3
118
141
  summary: A Ruby WebFinger client.