Class: Knj::Degulesider
Instance Method Summary collapse
-
#initialize(args = {}) ⇒ Degulesider
constructor
A new instance of Degulesider.
- #search(sargs) ⇒ Object
Constructor Details
#initialize(args = {}) ⇒ Degulesider
Returns a new instance of Degulesider.
2 3 4 5 6 7 |
# File 'lib/knj/degulesider.rb', line 2 def initialize(args = {}) @args = args @http = Knj::Http.new( "host" => "www.degulesider.dk" ) end |
Instance Method Details
#search(sargs) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/knj/degulesider.rb', line 9 def search(sargs) url = "/search/#{Php4r.urlencode(sargs[:where])}/-/1/" html = @http.get(url) ret = [] tbody_match = html["data"].match(/<tbody class='resultBody([\s\S]+?)<\/tbody>/) tbody_match[1].scan(/<tr id='res(\d+)'([\s\S]+?)<\/tr>/) do |match| res = {} if title_match = match[1].match(/<h2><a\s+class="fn".*>(.+)<\/a><\/h2>/) res[:name] = title_match[1] end if phone_match = match[1].match(/<div class="phones"><ul class="linkList"><li>(Mob.|)\s*([\d\s]+)<\/li><\/ul><\/div>/) if phone_match[1] == "Mob." res[:mobile] = phone_match[2].gsub(/\s+/, "") else raise "No such phone-mode: #{phone_match[1]}" end end if city_match = match[1].match(/'locality'>(.+)<\/span>/) res[:city] = city_match[1] end if category_match = match[1].match(/class='categoryLink'>(.+)<\/a>/) res[:category] = category_match[1] end ret << res end return ret end |