diff --git a/README.md b/README.md
index a7818ed..4faf7e0 100644
--- a/README.md
+++ b/README.md
@@ -46,7 +46,7 @@ DiasporaFederation.configure do |config|
on :person_webfinger_fetch do |handle|
person = Person.find_local_by_diaspora_handle(handle)
if person
- DiasporaFederation::WebFinger::WebFinger.new(
+ DiasporaFederation::Discovery::WebFinger.new(
# ...
)
end
diff --git a/app/controllers/diaspora_federation/webfinger_controller.rb b/app/controllers/diaspora_federation/webfinger_controller.rb
index 3343e1c..22bc63a 100644
--- a/app/controllers/diaspora_federation/webfinger_controller.rb
+++ b/app/controllers/diaspora_federation/webfinger_controller.rb
@@ -48,11 +48,11 @@ module DiasporaFederation
# creates the host-meta xml with the configured server_uri and caches it
# @return [String] XML string
def self.host_meta_xml
- @host_meta_xml ||= WebFinger::HostMeta.from_base_url(DiasporaFederation.server_uri.to_s).to_xml
+ @host_meta_xml ||= Discovery::HostMeta.from_base_url(DiasporaFederation.server_uri.to_s).to_xml
end
def find_person_webfinger(query)
- DiasporaFederation.callbacks.trigger(:person_webfinger_fetch, query.strip.downcase.gsub("acct:", ""))
+ DiasporaFederation.callbacks.trigger(:person_webfinger_fetch, query.strip.downcase.sub("acct:", ""))
end
end
end
diff --git a/lib/diaspora_federation.rb b/lib/diaspora_federation.rb
index 1580b65..2dbf8c8 100644
--- a/lib/diaspora_federation.rb
+++ b/lib/diaspora_federation.rb
@@ -4,7 +4,7 @@ require "diaspora_federation/callbacks"
require "diaspora_federation/properties_dsl"
require "diaspora_federation/entity"
-require "diaspora_federation/web_finger"
+require "diaspora_federation/discovery"
# diaspora* federation library
module DiasporaFederation
diff --git a/lib/diaspora_federation/discovery.rb b/lib/diaspora_federation/discovery.rb
new file mode 100644
index 0000000..d917b32
--- /dev/null
+++ b/lib/diaspora_federation/discovery.rb
@@ -0,0 +1,13 @@
+module DiasporaFederation
+ # This module provides the namespace for the various classes implementing
+ # WebFinger and other protocols used for metadata discovery on remote servers
+ # in the Diaspora* network.
+ module Discovery
+ end
+end
+
+require "diaspora_federation/discovery/exceptions"
+require "diaspora_federation/discovery/xrd_document"
+require "diaspora_federation/discovery/host_meta"
+require "diaspora_federation/discovery/web_finger"
+require "diaspora_federation/discovery/h_card"
diff --git a/lib/diaspora_federation/web_finger/exceptions.rb b/lib/diaspora_federation/discovery/exceptions.rb
similarity index 96%
rename from lib/diaspora_federation/web_finger/exceptions.rb
rename to lib/diaspora_federation/discovery/exceptions.rb
index 5883dc7..cefced1 100644
--- a/lib/diaspora_federation/web_finger/exceptions.rb
+++ b/lib/diaspora_federation/discovery/exceptions.rb
@@ -1,5 +1,5 @@
module DiasporaFederation
- module WebFinger
+ module Discovery
# Raised, if the XML structure is invalid
class InvalidDocument < RuntimeError
end
diff --git a/lib/diaspora_federation/web_finger/h_card.rb b/lib/diaspora_federation/discovery/h_card.rb
similarity index 99%
rename from lib/diaspora_federation/web_finger/h_card.rb
rename to lib/diaspora_federation/discovery/h_card.rb
index 76025e9..e3f149b 100644
--- a/lib/diaspora_federation/web_finger/h_card.rb
+++ b/lib/diaspora_federation/discovery/h_card.rb
@@ -1,5 +1,5 @@
module DiasporaFederation
- module WebFinger
+ module Discovery
# This class provides the means of generating an parsing account data to and
# from the hCard format.
# hCard is based on +RFC 2426+ (vCard) which got superseded by +RFC 6350+.
diff --git a/lib/diaspora_federation/web_finger/host_meta.rb b/lib/diaspora_federation/discovery/host_meta.rb
similarity index 99%
rename from lib/diaspora_federation/web_finger/host_meta.rb
rename to lib/diaspora_federation/discovery/host_meta.rb
index 444c16f..fce8077 100644
--- a/lib/diaspora_federation/web_finger/host_meta.rb
+++ b/lib/diaspora_federation/discovery/host_meta.rb
@@ -1,6 +1,6 @@
module DiasporaFederation
- module WebFinger
+ module Discovery
# Generates and parses Host Meta documents.
#
# This is a minimal implementation of the standard, only to the degree of what
diff --git a/lib/diaspora_federation/web_finger/web_finger.rb b/lib/diaspora_federation/discovery/web_finger.rb
similarity index 99%
rename from lib/diaspora_federation/web_finger/web_finger.rb
rename to lib/diaspora_federation/discovery/web_finger.rb
index a0ddc7a..ddeabd1 100644
--- a/lib/diaspora_federation/web_finger/web_finger.rb
+++ b/lib/diaspora_federation/discovery/web_finger.rb
@@ -1,5 +1,5 @@
module DiasporaFederation
- module WebFinger
+ module Discovery
# The WebFinger document used for Diaspora* user discovery is based on an older
# draft of the specification you can find in the wiki of the "webfinger" project
# on {http://code.google.com/p/webfinger/wiki/WebFingerProtocol Google Code}
diff --git a/lib/diaspora_federation/web_finger/xrd_document.rb b/lib/diaspora_federation/discovery/xrd_document.rb
similarity index 99%
rename from lib/diaspora_federation/web_finger/xrd_document.rb
rename to lib/diaspora_federation/discovery/xrd_document.rb
index d35fbe2..c03f077 100644
--- a/lib/diaspora_federation/web_finger/xrd_document.rb
+++ b/lib/diaspora_federation/discovery/xrd_document.rb
@@ -1,5 +1,5 @@
module DiasporaFederation
- module WebFinger
+ module Discovery
# This class implements basic handling of XRD documents as far as it is
# necessary in the context of the protocols used with Diaspora* federation.
#
diff --git a/lib/diaspora_federation/web_finger.rb b/lib/diaspora_federation/web_finger.rb
deleted file mode 100644
index f0d6222..0000000
--- a/lib/diaspora_federation/web_finger.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-module DiasporaFederation
- # This module provides the namespace for the various classes implementing
- # WebFinger and other protocols used for metadata discovery on remote servers
- # in the Diaspora* network.
- module WebFinger
- end
-end
-
-require "diaspora_federation/web_finger/exceptions"
-require "diaspora_federation/web_finger/xrd_document"
-require "diaspora_federation/web_finger/host_meta"
-require "diaspora_federation/web_finger/web_finger"
-require "diaspora_federation/web_finger/h_card"
diff --git a/spec/controllers/diaspora_federation/webfinger_controller_spec.rb b/spec/controllers/diaspora_federation/webfinger_controller_spec.rb
index 62b42cb..3a7c87e 100644
--- a/spec/controllers/diaspora_federation/webfinger_controller_spec.rb
+++ b/spec/controllers/diaspora_federation/webfinger_controller_spec.rb
@@ -24,13 +24,13 @@ module DiasporaFederation
expect(response.header["Content-Type"]).to include "application/xrd+xml"
end
- it "calls WebFinger::HostMeta.from_base_url with the base url" do
- expect(WebFinger::HostMeta).to receive(:from_base_url).with("http://localhost:3000/").and_call_original
+ it "calls Discovery::HostMeta.from_base_url with the base url" do
+ expect(Discovery::HostMeta).to receive(:from_base_url).with("http://localhost:3000/").and_call_original
get :host_meta
end
it "caches the xml" do
- expect(WebFinger::HostMeta).to receive(:from_base_url).exactly(1).times.and_call_original
+ expect(Discovery::HostMeta).to receive(:from_base_url).exactly(1).times.and_call_original
get :host_meta
get :host_meta
end
diff --git a/spec/lib/diaspora_federation/web_finger/h_card_spec.rb b/spec/lib/diaspora_federation/discovery/h_card_spec.rb
similarity index 91%
rename from spec/lib/diaspora_federation/web_finger/h_card_spec.rb
rename to spec/lib/diaspora_federation/discovery/h_card_spec.rb
index c7e124a..3e763d2 100644
--- a/spec/lib/diaspora_federation/web_finger/h_card_spec.rb
+++ b/spec/lib/diaspora_federation/discovery/h_card_spec.rb
@@ -1,5 +1,5 @@
module DiasporaFederation
- describe WebFinger::HCard do
+ describe Discovery::HCard do
let(:person) { FactoryGirl.create(:person) }
let(:photo_large_url) { "#{person.url}/upload/large.png" }
let(:photo_medium_url) { "#{person.url}/upload/medium.png" }
@@ -93,12 +93,12 @@ HTML
}
it "must not create blank instances" do
- expect { WebFinger::HCard.new({}) }.to raise_error ArgumentError
+ expect { Discovery::HCard.new({}) }.to raise_error ArgumentError
end
context "generation" do
it "creates an instance from a data hash" do
- hcard = WebFinger::HCard.new(
+ hcard = Discovery::HCard.new(
guid: person.guid,
nickname: person.nickname,
full_name: person.full_name,
@@ -115,13 +115,13 @@ HTML
end
it "fails if nil was given" do
- expect { WebFinger::HCard.new(nil) }.to raise_error ArgumentError, "expected a Hash"
+ expect { Discovery::HCard.new(nil) }.to raise_error ArgumentError, "expected a Hash"
end
end
context "parsing" do
it "reads its own output" do
- hcard = WebFinger::HCard.from_html(html)
+ hcard = Discovery::HCard.from_html(html)
expect(hcard.guid).to eq(person.guid)
expect(hcard.nickname).to eq(person.nickname)
expect(hcard.full_name).to eq(person.full_name)
@@ -137,7 +137,7 @@ HTML
end
it "is frozen after parsing" do
- hcard = WebFinger::HCard.from_html(html)
+ hcard = Discovery::HCard.from_html(html)
expect(hcard).to be_frozen
end
@@ -147,7 +147,7 @@ HTML
"class=\"searchable\"><"
)
- hcard = WebFinger::HCard.from_html(changed_html)
+ hcard = Discovery::HCard.from_html(changed_html)
expect(hcard.searchable).to eq(false)
end
@@ -218,7 +218,7 @@ HTML
HTML
- hcard = WebFinger::HCard.from_html(historic_html)
+ hcard = Discovery::HCard.from_html(historic_html)
expect(hcard.url).to eq(person.url)
expect(hcard.photo_large_url).to eq(photo_large_url)
expect(hcard.photo_medium_url).to eq(photo_medium_url)
@@ -235,11 +235,11 @@ HTML
#{person.full_name}
HTML
- expect { WebFinger::HCard.from_html(invalid_html) }.to raise_error WebFinger::InvalidData
+ expect { Discovery::HCard.from_html(invalid_html) }.to raise_error Discovery::InvalidData
end
it "fails if the document is not HTML" do
- expect { WebFinger::HCard.from_html("") }.to raise_error WebFinger::InvalidData
+ expect { Discovery::HCard.from_html("") }.to raise_error Discovery::InvalidData
end
end
end
diff --git a/spec/lib/diaspora_federation/web_finger/host_meta_spec.rb b/spec/lib/diaspora_federation/discovery/host_meta_spec.rb
similarity index 71%
rename from spec/lib/diaspora_federation/web_finger/host_meta_spec.rb
rename to spec/lib/diaspora_federation/discovery/host_meta_spec.rb
index 0bb9545..2f82ebf 100644
--- a/spec/lib/diaspora_federation/web_finger/host_meta_spec.rb
+++ b/spec/lib/diaspora_federation/discovery/host_meta_spec.rb
@@ -1,5 +1,5 @@
module DiasporaFederation
- describe WebFinger::HostMeta do
+ describe Discovery::HostMeta do
let(:base_url) { "https://pod.example.tld/" }
let(:xml) {
<<-XML
@@ -11,28 +11,28 @@ XML
}
it "must not create blank instances" do
- expect { WebFinger::HostMeta.new }.to raise_error NoMethodError
+ expect { Discovery::HostMeta.new }.to raise_error NoMethodError
end
context "generation" do
it "creates a nice XML document" do
- hm = WebFinger::HostMeta.from_base_url(base_url)
+ hm = Discovery::HostMeta.from_base_url(base_url)
expect(hm.to_xml).to eq(xml)
end
it "appends a '/' if necessary" do
- hm = WebFinger::HostMeta.from_base_url("https://pod.example.tld")
+ hm = Discovery::HostMeta.from_base_url("https://pod.example.tld")
expect(hm.to_xml).to eq(xml)
end
it "fails if the base_url was omitted" do
- expect { WebFinger::HostMeta.from_base_url("") }.to raise_error WebFinger::InvalidData
+ expect { Discovery::HostMeta.from_base_url("") }.to raise_error Discovery::InvalidData
end
end
context "parsing" do
it "parses its own output" do
- hm = WebFinger::HostMeta.from_xml(xml)
+ hm = Discovery::HostMeta.from_xml(xml)
expect(hm.webfinger_template_url).to eq("#{base_url}webfinger?q={uri}")
end
@@ -49,7 +49,7 @@ XML
XML
- hm = WebFinger::HostMeta.from_xml(historic_xml)
+ hm = Discovery::HostMeta.from_xml(historic_xml)
expect(hm.webfinger_template_url).to eq("#{base_url}webfinger?q={uri}")
end
@@ -59,7 +59,7 @@ XML
XML
- expect { WebFinger::HostMeta.from_xml(invalid_xml) }.to raise_error WebFinger::InvalidData
+ expect { Discovery::HostMeta.from_xml(invalid_xml) }.to raise_error Discovery::InvalidData
end
it "fails if the document contains a malformed webfinger url" do
@@ -69,11 +69,11 @@ XML
XML
- expect { WebFinger::HostMeta.from_xml(invalid_xml) }.to raise_error WebFinger::InvalidData
+ expect { Discovery::HostMeta.from_xml(invalid_xml) }.to raise_error Discovery::InvalidData
end
it "fails if the document is invalid" do
- expect { WebFinger::HostMeta.from_xml("") }.to raise_error WebFinger::InvalidDocument
+ expect { Discovery::HostMeta.from_xml("") }.to raise_error Discovery::InvalidDocument
end
end
end
diff --git a/spec/lib/diaspora_federation/web_finger/web_finger_spec.rb b/spec/lib/diaspora_federation/discovery/web_finger_spec.rb
similarity index 87%
rename from spec/lib/diaspora_federation/web_finger/web_finger_spec.rb
rename to spec/lib/diaspora_federation/discovery/web_finger_spec.rb
index e5313b7..340e321 100644
--- a/spec/lib/diaspora_federation/web_finger/web_finger_spec.rb
+++ b/spec/lib/diaspora_federation/discovery/web_finger_spec.rb
@@ -1,5 +1,5 @@
module DiasporaFederation
- describe WebFinger::WebFinger do
+ describe Discovery::WebFinger do
let(:person) { FactoryGirl.create(:person) }
let(:acct) { "acct:#{person.diaspora_handle}" }
let(:public_key_base64) { Base64.strict_encode64(person.serialized_public_key) }
@@ -22,12 +22,12 @@ XML
}
it "must not create blank instances" do
- expect { WebFinger::WebFinger.new({}) }.to raise_error ArgumentError
+ expect { Discovery::WebFinger.new({}) }.to raise_error ArgumentError
end
context "generation" do
it "creates a nice XML document" do
- wf = WebFinger::WebFinger.new(
+ wf = Discovery::WebFinger.new(
acct_uri: "acct:#{person.diaspora_handle}",
alias_url: person.alias_url,
hcard_url: person.hcard_url,
@@ -42,13 +42,13 @@ XML
end
it "fails if nil was given" do
- expect { WebFinger::WebFinger.new(nil) }.to raise_error ArgumentError, "expected a Hash"
+ expect { Discovery::WebFinger.new(nil) }.to raise_error ArgumentError, "expected a Hash"
end
end
context "parsing" do
it "reads its own output" do
- wf = WebFinger::WebFinger.from_xml(xml)
+ wf = Discovery::WebFinger.from_xml(xml)
expect(wf.acct_uri).to eq(acct)
expect(wf.alias_url).to eq(person.alias_url)
expect(wf.hcard_url).to eq(person.hcard_url)
@@ -62,7 +62,7 @@ XML
end
it "is frozen after parsing" do
- wf = WebFinger::WebFinger.from_xml(xml)
+ wf = Discovery::WebFinger.from_xml(xml)
expect(wf).to be_frozen
end
@@ -84,7 +84,7 @@ XML
XML
- wf = WebFinger::WebFinger.from_xml(historic_xml)
+ wf = Discovery::WebFinger.from_xml(historic_xml)
expect(wf.acct_uri).to eq(acct)
expect(wf.alias_url).to eq(person.alias_url)
expect(wf.hcard_url).to eq(person.hcard_url)
@@ -103,11 +103,11 @@ XML
XML
- expect { WebFinger::WebFinger.from_xml(invalid_xml) }.to raise_error WebFinger::InvalidData
+ expect { Discovery::WebFinger.from_xml(invalid_xml) }.to raise_error Discovery::InvalidData
end
it "fails if the document is not XML" do
- expect { WebFinger::WebFinger.from_xml("") }.to raise_error WebFinger::InvalidDocument
+ expect { Discovery::WebFinger.from_xml("") }.to raise_error Discovery::InvalidDocument
end
end
end
diff --git a/spec/lib/diaspora_federation/web_finger/xrd_document_spec.rb b/spec/lib/diaspora_federation/discovery/xrd_document_spec.rb
similarity index 87%
rename from spec/lib/diaspora_federation/web_finger/xrd_document_spec.rb
rename to spec/lib/diaspora_federation/discovery/xrd_document_spec.rb
index 18d566d..42ba34f 100644
--- a/spec/lib/diaspora_federation/web_finger/xrd_document_spec.rb
+++ b/spec/lib/diaspora_federation/discovery/xrd_document_spec.rb
@@ -1,5 +1,5 @@
module DiasporaFederation
- describe WebFinger::XrdDocument do
+ describe Discovery::XrdDocument do
let(:xml) {
<
@@ -49,7 +49,7 @@ XML
context "generation" do
it "creates the xml document" do
- doc = WebFinger::XrdDocument.new
+ doc = Discovery::XrdDocument.new
doc.expires = data[:expires]
doc.subject = data[:subject]
@@ -71,16 +71,16 @@ XML
context "parsing" do
it "reads the xml document" do
- doc = WebFinger::XrdDocument.xml_data(xml)
+ doc = Discovery::XrdDocument.xml_data(xml)
expect(doc).to eq(data)
end
it "raises InvalidDocument if the xml is empty" do
- expect { WebFinger::XrdDocument.xml_data("") }.to raise_error WebFinger::InvalidDocument
+ expect { Discovery::XrdDocument.xml_data("") }.to raise_error Discovery::InvalidDocument
end
it "raises InvalidDocument if the xml is no XRD document" do
- expect { WebFinger::XrdDocument.xml_data("") }.to raise_error WebFinger::InvalidDocument
+ expect { Discovery::XrdDocument.xml_data("") }.to raise_error Discovery::InvalidDocument
end
end
end
diff --git a/test/dummy/config/initializers/diaspora_federation.rb b/test/dummy/config/initializers/diaspora_federation.rb
index a41a7c5..1374fff 100644
--- a/test/dummy/config/initializers/diaspora_federation.rb
+++ b/test/dummy/config/initializers/diaspora_federation.rb
@@ -1,4 +1,4 @@
-require "diaspora_federation/web_finger"
+require "diaspora_federation/discovery"
# configure the federation engine
DiasporaFederation.configure do |config|
@@ -9,7 +9,7 @@ DiasporaFederation.configure do |config|
on :person_webfinger_fetch do |handle|
person = Person.find_by(diaspora_handle: handle)
if person
- DiasporaFederation::WebFinger::WebFinger.new(
+ DiasporaFederation::Discovery::WebFinger.new(
acct_uri: "acct:#{person.diaspora_handle}",
alias_url: person.alias_url,
hcard_url: person.hcard_url,
@@ -26,7 +26,7 @@ DiasporaFederation.configure do |config|
on :person_hcard_fetch do |guid|
person = Person.find_by(guid: guid)
if person
- DiasporaFederation::WebFinger::HCard.new(
+ DiasporaFederation::Discovery::HCard.new(
guid: person.guid,
nickname: person.nickname,
full_name: person.full_name,