| Class | ActsAsFerret::FerretResult |
| In: |
lib/ferret_result.rb
|
| Parent: | ActsAsFerret::BlankSlate |
| id | [RW] |
# File lib/ferret_result.rb, line 17
17: def initialize(model, id, score, rank, data = {})
18: @model = model.constantize
19: @id = id
20: @ferret_score = score
21: @ferret_rank = rank
22: @data = data
23: @use_record = false
24: end
# File lib/ferret_result.rb, line 26
26: def inspect
27: "#<FerretResult wrapper for #{@model} with id #{@id}"
28: end
# File lib/ferret_result.rb, line 30
30: def method_missing(method, *args, &block)
31: if (@ar_record && @use_record) || !@data.has_key?(method)
32: to_record.send method, *args, &block
33: else
34: @data[method]
35: end
36: end
# File lib/ferret_result.rb, line 38
38: def respond_to?(name)
39: methods.include?(name.to_s) || @data.has_key?(name.to_sym) || to_record.respond_to?(name)
40: end
# File lib/ferret_result.rb, line 42
42: def to_record
43: unless @ar_record
44: @ar_record = @model.find(id)
45: @ar_record.ferret_rank = ferret_rank
46: @ar_record.ferret_score = ferret_score
47: # don't try to fetch attributes from RDig based records
48: @use_record = !@ar_record.class.included_modules.include?(ActsAsFerret::RdigAdapter)
49: end
50: @ar_record
51: end