diaspora_federation 0.0.6 → 0.0.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e6fb6d319c4da3c247e0215f53e4cbc01be44bab
4
- data.tar.gz: c1b7abc5e4ee6c7ab0304f0e31cab3c3b1c7e498
3
+ metadata.gz: 2605f2fbbad193258093de0d499941cbc231c853
4
+ data.tar.gz: 507864a736becfae27431510fc757905ac7cb0a8
5
5
  SHA512:
6
- metadata.gz: e9307f19b1d29a5428115101edf46849c3f0a992beb2ca294cf216c07018414cb1e27e300ea7505a37c777378188019d1a5d6151f699d78a2c9c2be47f5da913
7
- data.tar.gz: 5e1efb1c1551e1b1716455337044507ad77223368e6b0e16381a1a6f421acec0a4c9ddf50e739f205d9f207c7acc3afb7d1bce2617633428da16c3b64d9c6072
6
+ metadata.gz: be545dfa7000d5b11bef50fba8cbb7dcd43be46d4a470fda1935aae1bf122e36c4e79b4706b7deda83eb8692f6a861a156a2e9960a7f7bef628460a513c61ed7
7
+ data.tar.gz: 0ef3cb5ea273720b9258f0851051745e385367907f8733019de8b413a29a0b0f6a65968e234bb716119c9776536d04281be19062a081447b7a7f68737cbc5287
@@ -84,7 +84,7 @@ module DiasporaFederation
84
84
  # @param [Hash] data extracted data
85
85
  # @return [String] webfinger url
86
86
  def self.webfinger_url_from_xrd(data)
87
- link = data[:links].find {|l| (l[:rel] == "lrdd" && l[:type] == "application/xrd+xml") }
87
+ link = data[:links].find {|l| l[:rel] == "lrdd" }
88
88
  return link[:template] unless link.nil?
89
89
  end
90
90
  private_class_method :webfinger_url_from_xrd
@@ -41,6 +41,7 @@ module DiasporaFederation
41
41
  property :acct_uri
42
42
 
43
43
  # @!attribute [r] alias_url
44
+ # @note could be nil
44
45
  # @return [String] link to the users profile
45
46
  property :alias_url
46
47
 
@@ -68,6 +69,7 @@ module DiasporaFederation
68
69
  property :atom_url
69
70
 
70
71
  # @!attribute [r] salmon_url
72
+ # @note could be nil
71
73
  # @return [String] salmon endpoint url
72
74
  # @see http://salmon-protocol.googlecode.com/svn/trunk/draft-panzer-salmon-00.html#SMLR
73
75
  # Panzer draft for Salmon, paragraph 3.3
@@ -154,7 +156,7 @@ module DiasporaFederation
154
156
 
155
157
  new(
156
158
  acct_uri: data[:subject],
157
- alias_url: clean_alias(data[:aliases].first),
159
+ alias_url: parse_alias(data[:aliases]),
158
160
  hcard_url: parse_link(links, REL_HCARD),
159
161
  seed_url: parse_link(links, REL_SEED),
160
162
  profile_url: parse_link(links, REL_PROFILE),
@@ -176,7 +178,7 @@ module DiasporaFederation
176
178
  # @raise [InvalidData] if the given XML string is invalid or incomplete
177
179
  def self.parse_xml_and_validate(webfinger_xml)
178
180
  XrdDocument.xml_data(webfinger_xml).tap do |data|
179
- valid = data.key?(:subject) && data.key?(:aliases) && data.key?(:links)
181
+ valid = data.key?(:subject) && data.key?(:links)
180
182
  raise InvalidData, "webfinger xml is incomplete" unless valid
181
183
  end
182
184
  end
@@ -218,11 +220,16 @@ module DiasporaFederation
218
220
  end
219
221
  private_class_method :parse_link
220
222
 
221
- # @deprecated remove this, when all pods use this gem for generation
222
- def self.clean_alias(alias_string)
223
- alias_string.gsub(/\A"|"\Z/, "")
223
+ # this method is used to parse the alias_url from the XML.
224
+ # * redmatrix has sometimes no alias, return nil
225
+ # * old pods had quotes around the alias url, this can be removed later
226
+ # * friendica has two aliases and the first is with "acct:": return only an URL starting with http (or https)
227
+ def self.parse_alias(aliases)
228
+ return nil unless aliases
229
+ # TODO: Old pods had quotes around alias. Remove the +map+ in next line, when all pods use this gem
230
+ aliases.map {|a| a.gsub(/\A"|"\Z/, "") }.find {|a| a.start_with?("http") }
224
231
  end
225
- private_class_method :parse_link
232
+ private_class_method :parse_alias
226
233
  end
227
234
  end
228
235
  end
@@ -9,12 +9,12 @@ module DiasporaFederation
9
9
 
10
10
  rule :acct_uri, :not_empty
11
11
 
12
- rule :alias_url, [:not_nil, URI: %i(host path)]
12
+ rule :alias_url, URI: %i(host path)
13
13
  rule :hcard_url, [:not_nil, URI: %i(host path)]
14
14
  rule :seed_url, %i(not_nil URI)
15
15
  rule :profile_url, [:not_nil, URI: %i(host path)]
16
16
  rule :atom_url, [:not_nil, URI: %i(host path)]
17
- rule :salmon_url, [:not_nil, URI: %i(host path)]
17
+ rule :salmon_url, URI: %i(host path)
18
18
  end
19
19
  end
20
20
  end
@@ -1,4 +1,4 @@
1
1
  module DiasporaFederation
2
2
  # the gem version
3
- VERSION = "0.0.6"
3
+ VERSION = "0.0.7"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: diaspora_federation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benjamin Neff
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-10 00:00:00.000000000 Z
11
+ date: 2015-09-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -78,14 +78,14 @@ dependencies:
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: 1.0.0
81
+ version: '1.0'
82
82
  type: :runtime
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: 1.0.0
88
+ version: '1.0'
89
89
  description: This gem provides the functionality for de-/serialization and de-/encryption
90
90
  of Entities in the protocols used for communication among the various installations
91
91
  of Diaspora*