diaspora_federation 0.3.0 → 1.0.0
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 +4 -4
- data/Changelog.md +9 -0
- data/lib/diaspora_federation/discovery/discovery.rb +2 -2
- data/lib/diaspora_federation/discovery/xrd_document.rb +1 -4
- data/lib/diaspora_federation/entities/relayable.rb +1 -1
- data/lib/diaspora_federation/entity.rb +3 -3
- data/lib/diaspora_federation/federation/sender.rb +1 -1
- data/lib/diaspora_federation/http_client.rb +3 -2
- data/lib/diaspora_federation/parsers/json_parser.rb +3 -5
- data/lib/diaspora_federation/parsers/xml_parser.rb +2 -2
- data/lib/diaspora_federation/properties_dsl.rb +3 -3
- data/lib/diaspora_federation/version.rb +1 -1
- metadata +13 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 55951778511742a4269e05b406ef43ca976410c07e91364896138e3df1cf7019
|
4
|
+
data.tar.gz: 3fed9b6d22ec275798e45a1df2c593835d1750fdac9c68158192a06640b4bcb5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 33b62f247e32f32874930b71f907540ae7f0dbf88182d1bd8e5a4c4590dd21eee9c2f9b691d54ed96d5688b9eca5c7523780fbd1b1a89ad7e2ae4ad9ca77c371
|
7
|
+
data.tar.gz: 581f0595fbd988aa146aea231bf80c2f81063c0719c671a83f685b162364922941bc8f68bd55b9a22385f520e0f7e162c66f71802e99703ccd54f03426d79731
|
data/Changelog.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
# 1.0.0
|
2
|
+
|
3
|
+
* Add rails 7 support [#126](https://github.com/diaspora/diaspora_federation/pull/126)
|
4
|
+
* Add faraday 2 support [#126](https://github.com/diaspora/diaspora_federation/pull/126)
|
5
|
+
|
1
6
|
# 0.3.0
|
2
7
|
|
3
8
|
## Breaking changes
|
@@ -14,6 +19,10 @@
|
|
14
19
|
* Add faraday 1.x support [#116](https://github.com/diaspora/diaspora_federation/pull/116)
|
15
20
|
* Add support for up to ruby 3.1 [#121](https://github.com/diaspora/diaspora_federation/pull/121)
|
16
21
|
|
22
|
+
# 0.2.8
|
23
|
+
|
24
|
+
* Re-release which allows rails 6 to be used
|
25
|
+
|
17
26
|
# 0.2.7
|
18
27
|
|
19
28
|
## Features
|
@@ -38,8 +38,8 @@ module DiasporaFederation
|
|
38
38
|
# Validates if the diaspora* ID matches the diaspora* ID in the webfinger response
|
39
39
|
return if diaspora_id == clean_diaspora_id(webfinger.acct_uri)
|
40
40
|
|
41
|
-
raise DiscoveryError, "diaspora* ID does not match: Wanted #{diaspora_id} but got" \
|
42
|
-
"
|
41
|
+
raise DiscoveryError, "diaspora* ID does not match: Wanted #{diaspora_id} but got " \
|
42
|
+
"#{clean_diaspora_id(webfinger.acct_uri)}"
|
43
43
|
end
|
44
44
|
|
45
45
|
def clean_diaspora_id(diaspora_id)
|
@@ -136,10 +136,7 @@ module DiasporaFederation
|
|
136
136
|
|
137
137
|
private
|
138
138
|
|
139
|
-
|
140
|
-
attr_reader :expires
|
141
|
-
attr_reader :subject
|
142
|
-
# rubocop:enable Layout/EmptyLinesAroundAttributeAccessor Style/AccessorGrouping
|
139
|
+
attr_reader :expires, :subject
|
143
140
|
|
144
141
|
NS = {xrd: XMLNS}.freeze
|
145
142
|
|
@@ -131,7 +131,7 @@ module DiasporaFederation
|
|
131
131
|
data = super
|
132
132
|
order = signature_order
|
133
133
|
order += %i[author_signature] unless author == parent.root.author
|
134
|
-
order.
|
134
|
+
order.to_h {|element| [element, data[element].to_s] }
|
135
135
|
end
|
136
136
|
|
137
137
|
def signature_order=(order)
|
@@ -77,7 +77,7 @@ module DiasporaFederation
|
|
77
77
|
# Nested entities are also converted to a Hash.
|
78
78
|
# @return [Hash] entity data (mostly equal to the hash used for initialization).
|
79
79
|
def to_h
|
80
|
-
enriched_properties.
|
80
|
+
enriched_properties.to_h {|key, value|
|
81
81
|
type = self.class.class_props[key]
|
82
82
|
|
83
83
|
if type.instance_of?(Symbol) || value.nil?
|
@@ -87,7 +87,7 @@ module DiasporaFederation
|
|
87
87
|
elsif type.instance_of?(Array)
|
88
88
|
[key, value.map(&:to_h)]
|
89
89
|
end
|
90
|
-
}
|
90
|
+
}
|
91
91
|
end
|
92
92
|
|
93
93
|
# Returns the XML representation for this entity constructed out of
|
@@ -273,7 +273,7 @@ module DiasporaFederation
|
|
273
273
|
end
|
274
274
|
|
275
275
|
def normalized_properties
|
276
|
-
properties.
|
276
|
+
properties.to_h {|name, value| [name, normalize_property(name, value)] }
|
277
277
|
end
|
278
278
|
|
279
279
|
def normalize_property(name, value)
|
@@ -26,7 +26,7 @@ module DiasporaFederation
|
|
26
26
|
def self.private(sender_id, obj_str, targets)
|
27
27
|
hydra = HydraWrapper.new(sender_id, obj_str)
|
28
28
|
targets.each {|url, json| hydra.insert_enc_magic_env_request(url, json) }
|
29
|
-
hydra.send.
|
29
|
+
hydra.send.to_h {|url| [url, targets[url]] }
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "faraday"
|
4
|
-
require "
|
4
|
+
require "faraday/follow_redirects"
|
5
5
|
|
6
6
|
module DiasporaFederation
|
7
7
|
# A wrapper for {https://github.com/lostisland/faraday Faraday}
|
@@ -32,7 +32,8 @@ module DiasporaFederation
|
|
32
32
|
}
|
33
33
|
|
34
34
|
@connection = Faraday::Connection.new(options) do |builder|
|
35
|
-
builder.
|
35
|
+
builder.use Faraday::FollowRedirects::Middleware, limit: DiasporaFederation.http_redirect_limit
|
36
|
+
|
36
37
|
builder.adapter Faraday.default_adapter
|
37
38
|
end
|
38
39
|
|
@@ -17,7 +17,7 @@ module DiasporaFederation
|
|
17
17
|
private
|
18
18
|
|
19
19
|
def parse_entity_data(entity_data)
|
20
|
-
hash = entity_data.
|
20
|
+
hash = entity_data.to_h {|key, value|
|
21
21
|
property = entity_type.class_props.keys.find {|name| name.to_s == key }
|
22
22
|
if property
|
23
23
|
type = entity_type.class_props[property]
|
@@ -25,7 +25,7 @@ module DiasporaFederation
|
|
25
25
|
else
|
26
26
|
[key, value]
|
27
27
|
end
|
28
|
-
}
|
28
|
+
}
|
29
29
|
|
30
30
|
[hash]
|
31
31
|
end
|
@@ -49,9 +49,7 @@ module DiasporaFederation
|
|
49
49
|
end
|
50
50
|
|
51
51
|
def from_json_sanity_validation(json_hash)
|
52
|
-
missing = %w[entity_type entity_data].
|
53
|
-
prop if json_hash[prop].nil?
|
54
|
-
}.compact.join(", ")
|
52
|
+
missing = %w[entity_type entity_data].select {|prop| json_hash[prop].nil? }.join(", ")
|
55
53
|
raise DeserializationError, "Required properties are missing in JSON object: #{missing}" unless missing.empty?
|
56
54
|
|
57
55
|
assert_parsability_of(json_hash["entity_type"])
|
@@ -14,7 +14,7 @@ module DiasporaFederation
|
|
14
14
|
def parse(root_node)
|
15
15
|
from_xml_sanity_validation(root_node)
|
16
16
|
|
17
|
-
hash = root_node.element_children.uniq(&:name).
|
17
|
+
hash = root_node.element_children.uniq(&:name).to_h {|child|
|
18
18
|
property, type = find_property_for(child.name)
|
19
19
|
if property
|
20
20
|
value = parse_element_from_node(child.name, type, root_node)
|
@@ -22,7 +22,7 @@ module DiasporaFederation
|
|
22
22
|
else
|
23
23
|
[child.name, child.text]
|
24
24
|
end
|
25
|
-
}
|
25
|
+
}
|
26
26
|
|
27
27
|
[hash]
|
28
28
|
end
|
@@ -57,7 +57,7 @@ module DiasporaFederation
|
|
57
57
|
# resolved on each call
|
58
58
|
# @return [Hash] default values
|
59
59
|
def default_values
|
60
|
-
optional_props.
|
60
|
+
optional_props.to_h {|name| [name, nil] }.merge(default_props).transform_values {|prop|
|
61
61
|
prop.respond_to?(:call) ? prop.call : prop
|
62
62
|
}
|
63
63
|
end
|
@@ -65,7 +65,7 @@ module DiasporaFederation
|
|
65
65
|
# @param [Hash] data entity data
|
66
66
|
# @return [Hash] hash with resolved aliases
|
67
67
|
def resolv_aliases(data)
|
68
|
-
data.
|
68
|
+
data.to_h {|name, value|
|
69
69
|
if class_prop_aliases.has_key? name
|
70
70
|
prop_name = class_prop_aliases[name]
|
71
71
|
raise InvalidData, "only use '#{name}' OR '#{prop_name}'" if data.has_key? prop_name
|
@@ -74,7 +74,7 @@ module DiasporaFederation
|
|
74
74
|
else
|
75
75
|
[name, value]
|
76
76
|
end
|
77
|
-
}
|
77
|
+
}
|
78
78
|
end
|
79
79
|
|
80
80
|
private
|
metadata
CHANGED
@@ -1,43 +1,49 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: diaspora_federation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Benjamin Neff
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-07-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.0'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '3'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '1.0'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
34
|
+
name: faraday-follow_redirects
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
37
|
- - "~>"
|
32
38
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
39
|
+
version: '0.3'
|
34
40
|
type: :runtime
|
35
41
|
prerelease: false
|
36
42
|
version_requirements: !ruby/object:Gem::Requirement
|
37
43
|
requirements:
|
38
44
|
- - "~>"
|
39
45
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
46
|
+
version: '0.3'
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: nokogiri
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|