activitypub 0.5.4 → 0.5.5

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
  SHA256:
3
- metadata.gz: 52a331dd7c66c7468b64dc33d41ea99a01eb1cd4b637fefd1aff67dae76ea659
4
- data.tar.gz: 4e04114e92eb30ba376e2679cee67f8d15b60f9f73d7b8461166c49ee7b269d5
3
+ metadata.gz: 50edef028c0ec645b4cbe978e667f0a555d695627f5690c63f051e8760748a8d
4
+ data.tar.gz: b16ded843906e72291472b24c6304eb7ae70d0d7702e4ffaec797e921836d018
5
5
  SHA512:
6
- metadata.gz: 1fe0b3d9f2784b16d62b1d5c7a459b846add2fe0353593a7ca2bad636e432d8a50611d83094916565ecc79d0cb18d2768da62787b1e37e5c00297029f24c06dc
7
- data.tar.gz: 6cf20a531d8fe0b748b397b9e2127b018c25f35630bb5ccd886405bc26345ca5e5fbc0c4c6510f182ef9c35409abfa1110caa364b5946451edf4c3ab42aa84db
6
+ metadata.gz: e908f7467abf62226e6be34373bbcb3a9f0a33a8761360dcc9f12ceae7d3dbe848ad57e706a4b2a53fee330985977b129828fd331189e1386c58059d9999718b
7
+ data.tar.gz: 5996073206adcbf572234cc08af6fd3b4d83b48457a11df7f47374fd2a5093a46d4fc947a126173d7943e0eb7d8a5dd440a81c992ed021160c01a10372a48001
@@ -6,22 +6,27 @@ module ActivityPub
6
6
  class Error < StandardError; end
7
7
 
8
8
 
9
- def self.from_json(json, resolver: nil)
10
- from_hash(JSON.parse(json), resolver:)
9
+ def self.from_json(json, resolver: nil, allow_unknown: false)
10
+ from_hash(JSON.parse(json), resolver:, allow_unknown:)
11
11
  end
12
12
 
13
- def self.from_hash(h, resolver: nil)
13
+ def self.from_hash(h, resolver: nil, allow_unknown: false)
14
14
  type = h&.dig("type")
15
15
 
16
16
  raise Error, "'type' attribute is required" if !type
17
17
  raise NameError, "'type' attribute with '::' is not allowed" if !type.index("::").nil?
18
18
 
19
19
  # FIXME: May need a way to override/handle custom namespaces.
20
-
21
- klass = ActivityPub.const_get(type)
20
+
21
+ if allow_unknown && !ActivityPub.const_defined?(type)
22
+ klass = ActivityPub::Object
23
+ else
24
+ klass = ActivityPub.const_get(type)
25
+ end
22
26
 
23
27
  ob = klass ? klass.new : nil
24
28
  ob._resolver = resolver
29
+ ob._raw = h
25
30
 
26
31
  # FIXME: Useful for debug. Add flag to allow enabling.
27
32
  # ob.instance_variable_set("@_raw",h)
@@ -60,6 +65,7 @@ module ActivityPub
60
65
  def _type = self.class.name.split("::").last
61
66
 
62
67
  attr_accessor :_resolver
68
+ attr_accessor :_raw
63
69
 
64
70
 
65
71
  # FIXME: Allow specifying a type (e.g. URI)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActivityPub
4
- VERSION = "0.5.4"
4
+ VERSION = "0.5.5"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activitypub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vidar Hokstad
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-07-25 00:00:00.000000000 Z
11
+ date: 2024-07-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: webfinger