Class: FactDb::Temporal::TimelineEvent

Inherits:
Object
  • Object
show all
Defined in:
lib/fact_db/temporal/timeline.rb

Overview

Wraps a Fact as a timeline event with convenience methods

Provides a simplified interface for timeline operations, delegating most methods to the underlying fact.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(fact) ⇒ TimelineEvent

Initializes a new TimelineEvent

Parameters:



197
198
199
# File 'lib/fact_db/temporal/timeline.rb', line 197

def initialize(fact)
  @fact = fact
end

Instance Attribute Details

#fact ⇒ FactDb::Models::Fact (readonly)

Returns the underlying fact.

Returns:



165
166
167
# File 'lib/fact_db/temporal/timeline.rb', line 165

def fact
  @fact
end

Instance Method Details

#<=>(other) ⇒ Integer

Compares events by valid_at date for sorting

Parameters:

Returns:

  • (Integer) —

    -1, 0, or 1



220
221
222
# File 'lib/fact_db/temporal/timeline.rb', line 220

def <=>(other)
  valid_at <=> other.valid_at
end

#currently_valid? ⇒ Boolean

Returns true if fact is currently valid.

Returns:

  • (Boolean) —

    true if fact is currently valid



190
191
192
# File 'lib/fact_db/temporal/timeline.rb', line 190

delegate :id, :text, :valid_at, :invalid_at, :status,
:currently_valid?, :valid_at?, :duration, :duration_days,
:entities, :source_contents, to: :fact

#duration ⇒ ActiveSupport::Duration?

Returns validity duration.

Returns:

  • (ActiveSupport::Duration, nil) —

    validity duration



190
191
192
# File 'lib/fact_db/temporal/timeline.rb', line 190

delegate :id, :text, :valid_at, :invalid_at, :status,
:currently_valid?, :valid_at?, :duration, :duration_days,
:entities, :source_contents, to: :fact

#duration_days ⇒ Integer?

Returns validity duration in days.

Returns:

  • (Integer, nil) —

    validity duration in days



190
191
192
# File 'lib/fact_db/temporal/timeline.rb', line 190

delegate :id, :text, :valid_at, :invalid_at, :status,
:currently_valid?, :valid_at?, :duration, :duration_days,
:entities, :source_contents, to: :fact

#entities ⇒ Array<Entity>

Returns mentioned entities.

Returns:

  • (Array<Entity>) —

    mentioned entities



190
191
192
# File 'lib/fact_db/temporal/timeline.rb', line 190

delegate :id, :text, :valid_at, :invalid_at, :status,
:currently_valid?, :valid_at?, :duration, :duration_days,
:entities, :source_contents, to: :fact

#id ⇒ Integer

Returns the fact ID.

Returns:

  • (Integer) —

    the fact ID



190
191
192
# File 'lib/fact_db/temporal/timeline.rb', line 190

delegate :id, :text, :valid_at, :invalid_at, :status,
:currently_valid?, :valid_at?, :duration, :duration_days,
:entities, :source_contents, to: :fact

#invalid_at ⇒ Time?

Returns when the fact became invalid.

Returns:

  • (Time, nil) —

    when the fact became invalid



190
191
192
# File 'lib/fact_db/temporal/timeline.rb', line 190

delegate :id, :text, :valid_at, :invalid_at, :status,
:currently_valid?, :valid_at?, :duration, :duration_days,
:entities, :source_contents, to: :fact

#source_contents ⇒ Array<Source>

Returns source documents.

Returns:

  • (Array<Source>) —

    source documents



190
191
192
# File 'lib/fact_db/temporal/timeline.rb', line 190

delegate :id, :text, :valid_at, :invalid_at, :status,
:currently_valid?, :valid_at?, :duration, :duration_days,
:entities, :source_contents, to: :fact

#status ⇒ String

Returns the fact status.

Returns:

  • (String) —

    the fact status



190
191
192
# File 'lib/fact_db/temporal/timeline.rb', line 190

delegate :id, :text, :valid_at, :invalid_at, :status,
:currently_valid?, :valid_at?, :duration, :duration_days,
:entities, :source_contents, to: :fact

#text ⇒ String

Returns the fact text.

Returns:

  • (String) —

    the fact text



190
191
192
# File 'lib/fact_db/temporal/timeline.rb', line 190

delegate :id, :text, :valid_at, :invalid_at, :status,
:currently_valid?, :valid_at?, :duration, :duration_days,
:entities, :source_contents, to: :fact

#to_hash ⇒ Hash

Converts the event to a hash representation

Returns:

  • (Hash) —

    hash with :id, :text, :valid_at, :invalid_at, :status, :duration_days, :entities



204
205
206
207
208
209
210
211
212
213
214
# File 'lib/fact_db/temporal/timeline.rb', line 204

def to_hash
  {
    id: id,
    text: text,
    valid_at: valid_at,
    invalid_at: invalid_at,
    status: status,
    duration_days: duration_days,
    entities: entities.map(&:name)
  }
end

#valid_at ⇒ Time

Returns when the fact became valid.

Returns:

  • (Time) —

    when the fact became valid



190
191
192
# File 'lib/fact_db/temporal/timeline.rb', line 190

delegate :id, :text, :valid_at, :invalid_at, :status,
:currently_valid?, :valid_at?, :duration, :duration_days,
:entities, :source_contents, to: :fact

#valid_at?(date) ⇒ Boolean

Returns true if valid at the given date.

Parameters:

  • date (Date, Time) —

    the point in time

Returns:

  • (Boolean) —

    true if valid at the given date



190
191
192
# File 'lib/fact_db/temporal/timeline.rb', line 190

delegate :id, :text, :valid_at, :invalid_at, :status,
:currently_valid?, :valid_at?, :duration, :duration_days,
:entities, :source_contents, to: :fact