redfinger 0.0.3 → 0.0.4

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.
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.