Class: RailVerdict::Intelligence::Providers::FakeProvider

Inherits:
Object
  • Object
show all
Includes:
AIProvider
Defined in:
lib/rail_verdict/intelligence/providers/fake_provider.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(results = []) ⇒ FakeProvider

Returns a new instance of FakeProvider.



11
12
13
14
15
# File 'lib/rail_verdict/intelligence/providers/fake_provider.rb', line 11

def initialize(results = [])
  @results = results.dup
  @call_count = 0
  @last_request = nil
end

Instance Attribute Details

#call_countObject (readonly)

Returns the value of attribute call_count.



9
10
11
# File 'lib/rail_verdict/intelligence/providers/fake_provider.rb', line 9

def call_count
  @call_count
end

#last_requestObject (readonly)

Returns the value of attribute last_request.



9
10
11
# File 'lib/rail_verdict/intelligence/providers/fake_provider.rb', line 9

def last_request
  @last_request
end

Instance Method Details

#analyze(request) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/rail_verdict/intelligence/providers/fake_provider.rb', line 21

def analyze(request)
  @call_count += 1
  @last_request = request
  return @results.shift if @results.any?

  Result.new(analysis: nil, failure: AIFailure.new(code: "provider_unavailable", message: "no queued result"))
end

#queue(result) ⇒ Object



17
18
19
# File 'lib/rail_verdict/intelligence/providers/fake_provider.rb', line 17

def queue(result)
  @results << result
end