activitypub 0.5.3 → 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: c79db959b5ea6174f498559a8e668e1a2428f2cf494733a73aea82b1a4408f5f
4
- data.tar.gz: d07463295371863d4edbe55713e63614e078f578769d7527aebad5da11ee3fd8
3
+ metadata.gz: 50edef028c0ec645b4cbe978e667f0a555d695627f5690c63f051e8760748a8d
4
+ data.tar.gz: b16ded843906e72291472b24c6304eb7ae70d0d7702e4ffaec797e921836d018
5
5
  SHA512:
6
- metadata.gz: bd2f0229349ca5ab4a0f0a473b930f5a23e513484c6d0c063ee232495c3a1f30d85698c862f6044079f7e276b4b7f767a59a741c442da53bff2c639560c1e0e2
7
- data.tar.gz: 9115b93cf7404621eca8056c087b3290a1a00aff3e48ef567ea12e5eb8d8ce0caa6ddd35c7bbd590118f0cfeeff88c6611679e8fa96d32cbb2ace4d69c4046fd
6
+ metadata.gz: e908f7467abf62226e6be34373bbcb3a9f0a33a8761360dcc9f12ceae7d3dbe848ad57e706a4b2a53fee330985977b129828fd331189e1386c58059d9999718b
7
+ data.tar.gz: 5996073206adcbf572234cc08af6fd3b4d83b48457a11df7f47374fd2a5093a46d4fc947a126173d7943e0eb7d8a5dd440a81c992ed021160c01a10372a48001
@@ -36,6 +36,7 @@ puts "Enter to continue"
36
36
  gets
37
37
 
38
38
  puts "Trying to retrieve outbox"
39
+ p ob.outbox
39
40
  ob = ob.outbox.get
40
41
  PP.pp(ob)
41
42
  puts
@@ -48,6 +49,8 @@ ob = ob.first.get
48
49
  PP.pp(ob)
49
50
 
50
51
  # For now, this will let you iterate through the collection.
52
+
53
+
51
54
  # while ob && ob.orderedItems.length > 0
52
55
  # PP.pp ob.id
53
56
  # ob = ob.next&.get
@@ -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)
@@ -3,18 +3,18 @@ require_relative 'resolvers'
3
3
 
4
4
  module ActivityPub
5
5
  class URI
6
- attr_accessor :_resolver
6
+ attr_writer :_resolver
7
7
 
8
8
  def initialize(href, resolver: nil)
9
9
  @href = href
10
- @_resolver = resolver || WebResolver
10
+ @_resolver = resolver
11
11
  end
12
12
 
13
+ def _resolver = (@_resolver || WebResolver)
14
+
13
15
  def to_s = @href
14
16
  def to_json(...) = @href
15
-
16
- def get
17
- @_resolver&.call(self.to_s)
18
- end
17
+
18
+ def get = _resolver.call(self.to_s)
19
19
  end
20
20
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActivityPub
4
- VERSION = "0.5.3"
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.3
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-23 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