Class: Zypper::Onlinesearch::Data::Search::Packman

Inherits:
PageData
  • Object
show all
Defined in:
lib/zypper/onlinesearch/data.rb

Overview

Scraping class for Packman search.

Constant Summary collapse

URL =
"http://packman.links2linux.org"
XPATH_PACKAGE =
'//table[@id="packagelist"]//tr'
XPATH_NAME =
'.//td[@class="package-name"]/a'
XPATH_DESC =
'.//td[@class="package-descr"]'
XPATH_URL =
'.//td[@class="package-name"]/a/@href'

Constants inherited from PageData

PageData::ARCHS, PageData::FORMATS

Instance Method Summary collapse

Methods inherited from PageData

#expand_link, #initialize

Constructor Details

This class inherits a constructor from Zypper::Onlinesearch::PageData

Instance Method Details

#dataObject



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# File 'lib/zypper/onlinesearch/data.rb', line 98

def data
  res = []
  @page.xpath(XPATH_PACKAGE).each do |pack|
    name = pack.xpath(XPATH_NAME).text
    next if name.empty?

    res << {
      name: name,
      description: pack.xpath(XPATH_DESC).text.strip.gsub(/\n|\ +/, " "),
      url: expand_link(pack.xpath(XPATH_URL).text)
    }
  end

  if res.empty?
    name = @page.xpath(Page::Packman::XPATH_NAME).text

    unless name.to_s.empty?
      res << { name: name, description: @page.xpath(Page::Packman::XPATH_DESC).text.strip }
    end
  end

  res
end