Class: Iecbib::HitCollection
- Inherits:
-
Array
- Object
- Array
- Iecbib::HitCollection
- Defined in:
- lib/iecbib/hit_collection.rb
Overview
Page of hit collection.
Constant Summary collapse
- DOMAIN =
'https://webstore.iec.ch'
Instance Attribute Summary collapse
- #fetched ⇒ TrueClass, FalseClass readonly
- #text ⇒ String readonly
- #year ⇒ String readonly
Instance Method Summary collapse
- #fetch ⇒ Iecbib::HitCollection
-
#initialize(ref_nbr, year = nil) ⇒ HitCollection
constructor
A new instance of HitCollection.
- #inspect ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(ref_nbr, year = nil) ⇒ HitCollection
Returns a new instance of HitCollection.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/iecbib/hit_collection.rb', line 23 def initialize(ref_nbr, year = nil) #(text, hit_pages = nil) @text = ref_nbr @year = year from, to = nil if year from = Date.strptime year, '%Y' to = from.next_year.prev_day end url = "#{DOMAIN}/searchkey&RefNbr=#{ref_nbr}&From=#{from}&To=#{to}&start=1" doc = Nokogiri::HTML OpenURI.open_uri(::Addressable::URI.parse(url).normalize) hits = doc.css('ul.search-results > li').map do |h| link = h.at('a[@href!="#"]') code = link.text.tr [194, 160].pack('c*').force_encoding('UTF-8'), '' title = h.xpath('text()').text.gsub(/[\r\n]/, '') url = DOMAIN + link[:href] Hit.new({ code: code, title: title, url: url }, self) end concat hits # concat(hits.map { |h| Hit.new(h, self) }) @fetched = false # @hit_pages = hit_pages end |
Instance Attribute Details
#fetched ⇒ TrueClass, FalseClass (readonly)
13 14 15 |
# File 'lib/iecbib/hit_collection.rb', line 13 def fetched @fetched end |
#text ⇒ String (readonly)
16 17 18 |
# File 'lib/iecbib/hit_collection.rb', line 16 def text @text end |
#year ⇒ String (readonly)
19 20 21 |
# File 'lib/iecbib/hit_collection.rb', line 19 def year @year end |
Instance Method Details
#fetch ⇒ Iecbib::HitCollection
47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/iecbib/hit_collection.rb', line 47 def fetch workers = WorkersPool.new 4 workers.worker(&:fetch) each do |hit| workers << hit end workers.end workers.result @fetched = true self end |
#inspect ⇒ Object
63 64 65 |
# File 'lib/iecbib/hit_collection.rb', line 63 def inspect "<#{self.class}:#{format('%#.14x', object_id << 1)} @fetched=#{@fetched}>" end |
#to_s ⇒ Object
59 60 61 |
# File 'lib/iecbib/hit_collection.rb', line 59 def to_s inspect end |