Class: ReferenceMatcher

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

Direct Known Subclasses

Importers::Bolton::ReferenceMatcher, Importers::Hol::ReferenceMatcher, Reference::DuplicateMatcher

Instance Method Summary (collapse)

Instance Method Details

- (Object) candidates_for(target)



22
23
24
25
26
27
28
# File 'lib/reference_matcher.rb', line 22

def candidates_for target
  if target.author != @target_author
    @target_author = target.author
    @candidates = read_references @target_author
  end
  @candidates || []
end

- (Object) match(target)



4
5
6
7
8
9
10
11
12
# File 'lib/reference_matcher.rb', line 4

def match target
  candidates_for(target).inject([]) do |matches, candidate|
    if possible_match? target, candidate
      similarity = target <=> candidate
      matches << {:target => target, :match => candidate, :similarity => similarity} if similarity >= min_similarity
    end
    matches
  end
end

- (Object) min_similarity



18
19
20
# File 'lib/reference_matcher.rb', line 18

def min_similarity
  0.01
end

- (Boolean) possible_match?(target, candidate)

Returns:

  • (Boolean)


14
15
16
# File 'lib/reference_matcher.rb', line 14

def possible_match? target, candidate
  target.id != candidate.id
end

- (Object) read_references(target)



30
31
32
# File 'lib/reference_matcher.rb', line 30

def read_references target
  ::Reference.with_principal_author_last_name target
end