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

#factFactDb::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

#durationActiveSupport::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_daysInteger?

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

#entitiesArray<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

#idInteger

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_atTime?

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_contentsArray<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

#statusString

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

#textString

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_hashHash

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_atTime

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