Module: Federails::DataTransformer::Note

Defined in:
lib/federails/data_transformer/note.rb

Class Method Summary collapse

Class Method Details

.to_federation(entity, content:, name: nil, custom: {}) ⇒ Hash

Renders a Note. The entity is used to determine actor and generic fields data

See:

- https://www.w3.org/TR/activitystreams-vocabulary/#dfn-object
- https://www.w3.org/TR/activitystreams-vocabulary/#dfn-note

Examples:

Federails::DataTransformer::Note.to_federation(comment, content: comment.content, custom: { 'inReplyTo' => comment.parent.federated_url })

Parameters:

  • entity (#federail_actor, #federated_url, #created_at, #updated_at)

    A model instance

  • content (String)

    Note content

  • name (String, nil) (defaults to: nil)

    Optional name/title

  • custom (Hash) (defaults to: {})

    Optional additional keys (e.g.: attachment, icon, …). Defaults will override these.

Returns:

  • (Hash)


21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/federails/data_transformer/note.rb', line 21

def self.to_federation(entity, content:, name: nil, custom: {})
  # Merge default and custom contexts
  context = Utils::Context.generate(additional: custom.delete('@context'))
  # Merge in standard Note fields
  custom.merge '@context'     => context,
               'id'           => entity.federated_url,
               'type'         => 'Note',
               'name'         => name,
               'content'      => content,
               'attributedTo' => entity.federails_actor.federated_url,
               'published'    => entity.created_at,
               'updated'      => entity.updated_at
end