activitypub 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +12 -0
- data/lib/activitypub/base.rb +17 -2
- data/lib/activitypub/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d6b1c47f6ac1051a3057f0ae8d57fe2d83c3c99aea99a45ff09c50f1f044a9b
|
4
|
+
data.tar.gz: df120e3bad47452d3a22bb400feab41db3b4c27502b16247f389c751373ccb9b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc9e697ab7e8b67c040c482d9ba1f63ada540f5b2d08a5da689495670f960a71900b21e11548c8fe97ddc205bb5185afa5273c20df53bea9ddd36a1633d8cc6d
|
7
|
+
data.tar.gz: 27545eed23569575170cff387692c3d48ffe94c3afe0a9f417d37c121442852d3f5d145e4416ce5bec41c074a2e6ece46d4875183381c0c8b37d8bbb2d1821fd
|
data/README.md
CHANGED
@@ -3,6 +3,18 @@
|
|
3
3
|
*Very* early start on a set of classes to serialize/deserialize
|
4
4
|
ActivityPub/ActivityStream objects.
|
5
5
|
|
6
|
+
## Goals
|
7
|
+
|
8
|
+
* To provide a fairly *minimalist*, *barebones* set of classes to
|
9
|
+
work with ActivityPub objects *as used* by major Fediverse apps.
|
10
|
+
* Matching real-world use will be prioritized over strict adherence
|
11
|
+
to the specs - my use-cases require me to be able to handle documents
|
12
|
+
even if they have errors. But I want to be able to *produce* output
|
13
|
+
that prefers standards compliance where it doesn't sacrifice interop.
|
14
|
+
* Support extensions and namespace used by e.g. Mastodon and others.
|
15
|
+
* Be easy to extend/layer new functionality on top of for anything
|
16
|
+
that doesn't fit in this core.
|
17
|
+
|
6
18
|
|
7
19
|
## Installation
|
8
20
|
|
data/lib/activitypub/base.rb
CHANGED
@@ -1,11 +1,26 @@
|
|
1
1
|
|
2
|
-
|
2
|
+
require 'json'
|
3
3
|
|
4
|
+
module ActivityPub
|
5
|
+
class Error < StandardError; end
|
6
|
+
|
7
|
+
def self.from_json(json)
|
8
|
+
h = JSON.parse(json)
|
9
|
+
type = h&.dig("type")
|
10
|
+
|
11
|
+
raise Error, "'type' attribute is required" if !type
|
12
|
+
raise NameError, "'type' attribute with '::' is not allowed" if !type.index("::").nil?
|
13
|
+
|
14
|
+
klass = ActivityPub.const_get(type)
|
15
|
+
|
16
|
+
klass ? klass.new : nil
|
17
|
+
end
|
18
|
+
|
4
19
|
# This is not part of ActivityPub, but provides basic mechanisms
|
5
20
|
# for serialization and dezerialisation.
|
6
21
|
#
|
7
22
|
class Base
|
8
|
-
def _context = "https://www.w3.org/ns/activitystreams"
|
23
|
+
def _context = "https://www.w3.org/ns/activitystreams".freeze
|
9
24
|
def _type = self.class.name.split("::").last
|
10
25
|
|
11
26
|
|
data/lib/activitypub/version.rb
CHANGED
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.3.
|
4
|
+
version: 0.3.1
|
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-
|
11
|
+
date: 2024-07-03 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email:
|