Class: Engram::Provenance::Extractor

Inherits:
Object
  • Object
show all
Defined in:
lib/engram/provenance.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, model:, provider: nil) ⇒ Extractor

Returns a new instance of Extractor.

Raises:

  • (ArgumentError)


101
102
103
104
105
106
107
108
109
# File 'lib/engram/provenance.rb', line 101

def initialize(name:, model:, provider: nil)
  raise ArgumentError, "extractor name is required" if name.to_s.strip.empty?
  raise ArgumentError, "extractor model is required" if model.to_s.strip.empty?

  @name = name.to_s.dup.freeze
  @provider = provider&.to_s&.dup&.freeze
  @model = model.to_s.dup.freeze
  freeze
end

Instance Attribute Details

#modelObject (readonly)

Returns the value of attribute model.



99
100
101
# File 'lib/engram/provenance.rb', line 99

def model
  @model
end

#nameObject (readonly)

Returns the value of attribute name.



99
100
101
# File 'lib/engram/provenance.rb', line 99

def name
  @name
end

#providerObject (readonly)

Returns the value of attribute provider.



99
100
101
# File 'lib/engram/provenance.rb', line 99

def provider
  @provider
end

Instance Method Details

#==(other) ⇒ Object Also known as: eql?



111
112
113
# File 'lib/engram/provenance.rb', line 111

def ==(other)
  other.is_a?(self.class) && to_h == other.to_h
end

#hashObject



116
# File 'lib/engram/provenance.rb', line 116

def hash = to_h.hash

#to_hObject



118
119
120
121
122
# File 'lib/engram/provenance.rb', line 118

def to_h
  {"name" => name, "model" => model}.tap do |data|
    data["provider"] = provider if provider
  end
end