class AnyStyle::Feature::Keyword

Public Instance Methods

observe(token, alpha: token, **opts) click to toggle source
   # File lib/anystyle/feature/keyword.rb
 4 def observe(token, alpha: token, **opts)
 5   case token
 6   when '&'
 7     :and
 8   else
 9     case alpha
10     when /^ed(s|itors?|ited?|iteurs?)?$/i,
11          /^(hg|hrsg|herausgeber)$/i,
12          /^(compilador)$/i,
13          /編/
14       :editor
15     when /著|撰/,
16       :author
17     when /^trans(l(ated|ators?|ation))?$/i,
18          /^übers(etz(t|ung))?$/i,
19          /^trad(uction|ucteurs?|uit)?$/i,
20          /譯/
21       :translator
22     when /^(dissertation|thesis)$/i
23       :thesis
24     when /^(proceedings|conference|meeting|transactions|communications|seminar|symposi(on|um))/i
25       :proceedings
26     when /^(Journal|Zeitschrift|Quarterly|Magazine?|Times|Rev(iew|vue)?|Bulletin|News|Week|Gazett[ea])/
27       :journal
28     when /^in$/i, /收入/
29       :in
30     when /^([AaUu]nd|y|e)$/
31       :and
32     when /^(etal|others)$/
33       :etal
34     when /^(pp?|pages?|S(eiten?)?|ff?)$/
35       :page
36     when /^(vol(ume)?s?|iss(ue)?|n[or]?|number|fasc(icle|icule)?|suppl(ement)?|j(ahrgan)?g|heft)$/i
37       :volume
38     when /^(ser(ies?)?|reihe|[ck]oll(e[ck]tion))$/i
39       :series
40     when /^patent$/i
41       :patent
42     when /^report$/i
43       :report
44     when /^(edn|edition|expanded|rev(ised)?|p?reprint(ed)?|illustrated)$/i,
45       /^editio|aucta$/i
46       /^(aufl(age)?|\p{Alpha}*ausg(abe)?)$/i
47       :edition
48     when /^(nd|date|spring|s[uo]mmer|autumn|fall|winter|frühling|herbst)$/i,
49          /^(jan(uary?)?|feb(ruary?)?|mar(ch|z)?|apr(il)?|ma[yi]|jun[ei]?)$/,
50          /^(jul[yi]?|aug(ust)?|sep(tember)?|o[ck]t(ober)?|nov(ember)?|de[cz](ember)?)$/i,
51          /年/
52       :date
53     when /^(doi|url)/i
54       :locator
55     when /^(pmid|pmcid)/i
56       :pubmed
57     when /^(arxiv)/i
58       :arxiv
59     when /^(retrieved|retirado|accessed|ab(ruf|gerufen))$/i
60       :accessed
61     when /^[ILXVMCD]{2,}$/
62       :roman
63     else
64       :none
65     end
66   end
67 end