Class ActsAsFerret::FerretResult
In: lib/ferret_result.rb
Parent: ActsAsFerret::BlankSlate

Methods

Included Modules

ResultAttributes

Attributes

id  [RW] 

Public Class methods

[Source]

    # 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

Public Instance methods

[Source]

    # File lib/ferret_result.rb, line 26
26:     def inspect
27:       "#<FerretResult wrapper for #{@model} with id #{@id}"
28:     end

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Validate]