Class: CiteSight::PaperCitations

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

Instance Method Summary collapse

Constructor Details

#initialize(contents) ⇒ PaperCitations

Returns a new instance of PaperCitations.



6
7
8
# File 'lib/citesight/paper_citations.rb', line 6

def initialize(contents)
  @contents = contents
end

Instance Method Details

#index_of_cite(cite) ⇒ Object

Returns array of citation locations (index) in manuscript

contents = File.read('./spec/testfiles/test.txt')
PaperCitations.index_cite(contents, 'Peters et al. 2007')
# => [219, 500]


24
25
26
27
28
29
30
# File 'lib/citesight/paper_citations.rb', line 24

def index_of_cite(cite)
  cite_parts = cite.split
  author_s = cite_parts.take(cite_parts.size-1).join(' ')
  year_s = cite_parts.last
  @contents.enum_for(:scan, /(#{author_s}#{possessive}?#{year(year_s)})/
                    ).map { Regexp.last_match.begin(0) }
end

#unique_citesObject



10
11
12
13
14
15
16
# File 'lib/citesight/paper_citations.rb', line 10

def unique_cites
  clean_cites = @contents.scan(cite_match).map do |c|
    remove_punctuation(c[0])
  end

  Hash[clean_cites.group_by { |c| c }.map { |cit, num| [cit, num.count] }]
end