Class: EPUB::Searcher::Publication
- Inherits:
-
Object
- Object
- EPUB::Searcher::Publication
- Defined in:
- lib/epub/searcher/publication.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(word) ⇒ Publication
constructor
A new instance of Publication.
- #search(package, algorithm: :seamless) ⇒ Object
Constructor Details
#initialize(word) ⇒ Publication
Returns a new instance of Publication.
12 13 14 |
# File 'lib/epub/searcher/publication.rb', line 12 def initialize(word) @word = word end |
Class Method Details
.search(package, word, **options) ⇒ Object
7 8 9 |
# File 'lib/epub/searcher/publication.rb', line 7 def search(package, word, **) new(word).search(package, ) end |
Instance Method Details
#search(package, algorithm: :seamless) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/epub/searcher/publication.rb', line 16 def search(package, algorithm: :seamless) results = [] spine = package.spine spine_step = Result::Step.new(:element, 2, {:name => 'spine', :id => spine.id}) spine.each_itemref.with_index do |itemref, index| itemref_step = Result::Step.new(:itemref, index, {:id => itemref.id}) XHTML::ALGORITHMS[algorithm].search(Nokogiri.XML(itemref.item.read), @word).each do |sub_result| results << Result.new([spine_step, itemref_step] + sub_result.parent_steps, sub_result.start_steps, sub_result.end_steps) end end results end |