Module: Alexandria::EntryOverrides

Defined in:
lib/alexandria/ui/completion_models.rb

Instance Method Summary collapse

Instance Method Details

#complete_authorsObject



13
14
15
# File 'lib/alexandria/ui/completion_models.rb', line 13

def complete_authors
  complete(Alexandria::UI::CompletionModels::AUTHOR)
end

#complete_borrowersObject



25
26
27
# File 'lib/alexandria/ui/completion_models.rb', line 25

def complete_borrowers
  complete(Alexandria::UI::CompletionModels::BORROWER)
end

#complete_editionsObject



21
22
23
# File 'lib/alexandria/ui/completion_models.rb', line 21

def complete_editions
  complete(Alexandria::UI::CompletionModels::EDITION)
end

#complete_publishersObject



17
18
19
# File 'lib/alexandria/ui/completion_models.rb', line 17

def complete_publishers
  complete(Alexandria::UI::CompletionModels::PUBLISHER)
end

#complete_tagsObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/alexandria/ui/completion_models.rb', line 29

def complete_tags
  complete(Alexandria::UI::CompletionModels::TAG)
  # min = self.completion.minimum_key_length
  min = 2
  completion.signal_connect("match-selected") do |c, model, iter|
    cur_text = c.entry.text
    # TODO: Replace with iter[0] if possible
    new_tag = model.get_value(iter, 0)
    cur_text_split = cur_text.split(",")
    cur_text_split.delete_at(-1)
    cur_text_split << new_tag
    c.entry.text = cur_text_split.join(",")
    true
  end
  completion.set_match_func do |_comp, key, iter|
    cur_tag = key.split(",").last.strip
    if cur_tag.size >= min
      begin
        /^#{cur_tag}/.match?(iter[0])
      rescue StandardError
        false
      end
    else
      false
    end
  end
end

#complete_titlesObject



9
10
11
# File 'lib/alexandria/ui/completion_models.rb', line 9

def complete_titles
  complete(Alexandria::UI::CompletionModels::TITLE)
end