class Task::Fetch::Thread

Overview

Fetch a thread.

Included Modules

Defined in:

models/task/fetch/thread.cr

Constant Summary

Log = ::Log.for(self)

Class Method Summary

Instance Method Summary

Instance methods inherited from module Task::Fetch::Fetcher

failures(*args, **options)
failures(*args, **options, &)
failures
, last_success_at(*args, **options)
last_success_at(*args, **options, &)
last_success_at

Instance methods inherited from class Task

backtrace : Array(String) | Nil backtrace, backtrace=(backtrace : Array(String) | Nil) backtrace=, complete : Bool complete, complete=(complete : Bool) complete=, gone? gone?, last_attempt_at : Time | Nil last_attempt_at, last_attempt_at=(last_attempt_at : Time | Nil) last_attempt_at=, next_attempt_at : Time | Nil next_attempt_at, next_attempt_at=(next_attempt_at : Time | Nil) next_attempt_at=, past_due?(now = Time.utc) past_due?, perform perform, runnable? runnable?, running : Bool running, running=(running : Bool) running=, schedule(next_attempt_at : Time | Nil = nil) schedule, source_iri : String source_iri, source_iri=(source_iri : String) source_iri=, subject_iri : String subject_iri, subject_iri=(subject_iri : String) subject_iri=

Class methods inherited from class Task

clean_up_running_tasks clean_up_running_tasks, destroy_old_tasks destroy_old_tasks, scheduled(now = Time.utc, reserve = false) scheduled

Instance methods inherited from module Ktistec::Model::Polymorphic

as_a(as _as : T.class) : T forall T as_a, type : String type, type=(type : String) type=

Macros inherited from module Ktistec::Model::Polymorphic

find(_id id, *, as _as)
find(*, as _as, **options)
find

Instance methods inherited from module Ktistec::Model::Common

created_at : Time created_at, created_at=(created_at : Time) created_at=, updated_at : Time updated_at, updated_at=(updated_at : Time) updated_at=

Instance methods inherited from module Ktistec::Model::InstanceMethods

==(other) ==, _run_validations _run_validations, _save_model(skip_validation = false) _save_model, _serialize_graph(nodes, association = nil, index = nil, skip_associated = false) _serialize_graph, assign(properties : Hash(String, Any), *, _strict : Bool = false) forall Any
assign(*, _strict : Bool = false, **properties)
assign
, changed!(*properties : Symbol) changed!, changed?
changed?(*properties : Symbol)
changed?
, clear!
clear!(*properties : Symbol)
clear!
, destroy destroy, destroyed? destroyed?, errors errors, hash(hasher) hash, inspect(io : IO) inspect, new_record? new_record?, reload! reload!, save(skip_validation = false, skip_associated = false) save, serialize_graph(skip_associated = false) serialize_graph, table_name table_name, to_h to_h, to_json(json : JSON::Builder) to_json, to_s(io : IO) to_s, update_property(property, value) update_property, valid?(skip_associated = false) valid?, validate(skip_associated = false) validate

Constructor methods inherited from module Ktistec::Model::InstanceMethods

new(properties : Hash(String, Any), *, _strict : Bool = false) forall Any
new(*, _strict : Bool = false, **properties)
new

Macros inherited from module Ktistec::Model::InstanceMethods

belongs_to(name, primary_key = id, foreign_key = nil, class_name = nil, inverse_of = nil) belongs_to, derived(decl, *, aliased_to) derived, has_many(name, primary_key = id, foreign_key = nil, class_name = nil, inverse_of = nil) has_many, has_one(name, primary_key = id, foreign_key = nil, class_name = nil, inverse_of = nil) has_one, validates(property, &block) validates

Instance methods inherited from module Ktistec::Model

id : Int64 | Nil id, id=(id : Int64 | Nil) id=

Class Method Detail

def self.find_or_new(options) #

Finds an existing task or instantiates a new task.

If #thread (or subject_iri) is passed as an option, search for the root of the thread, and use that value. This ensures that new tasks always point at roots.


[View source]
def self.find_or_new(**options) #

Finds an existing task or instantiates a new task.

If #thread (or subject_iri) is passed as an option, search for the root of the thread, and use that value. This ensures that new tasks always point at roots.


[View source]
def self.merge_into(from, into) #

Merges tasks.

Should be used in places where an object's thread property is changed. Ensures that only one task exists for a thread.


[View source]

Instance Method Detail

def _association_source #

Identifies the actor following the thread.


[View source]
def _association_thread #

Identifies a thread.

This value may change as the thread is extended toward its root.


[View source]
def _belongs_to_setter_for_source(source_ : ActivityPub::Actor, update_associations = true) : ActivityPub::Actor #

Identifies the actor following the thread.


[View source]
def after_save #

[View source]
def been_fetched : Array(String) #

[View source]
def been_fetched=(been_fetched : Array(String)) #

[View source]
def best_root #

Finds the best root object.

This will be the actual root object, if the root object has been fetched and is cached. Otherwise, it will be an object in the incomplete thread.


[View source]
def complete! #

Sets the task to complete.


[View source]
def interrupted? #

Indicates whether the task was asynchronously set as complete.


[View source]
def path_to #

Returns the path to the thread index page.


[View source]
def perform(maximum = 100) #

Fetches objects in the thread.

On each invocation, performs at most maximum (default 100) fetches/network requests for new objects.


[View source]
def source(include_deleted : Bool = false, include_undone : Bool = false) : ActivityPub::Actor #

Identifies the actor following the thread.


[View source]
def source=(source_ : ActivityPub::Actor) : ActivityPub::Actor #

Identifies the actor following the thread.


[View source]
def source?(include_deleted : Bool = false, include_undone : Bool = false) : ActivityPub::Actor | Nil #

Identifies the actor following the thread.


[View source]
def state : State #

[View source]
def state=(state : State) #

[View source]
def thread : String #

Identifies a thread.

This value may change as the thread is extended toward its root.


[View source]
def thread=(thread : String) : String #

Identifies a thread.

This value may change as the thread is extended toward its root.


[View source]