[ruby-it] metodo non riconosciuto

luca sabato ilramingo a gmail.com
Mer 3 Set 2008 21:29:50 CEST


grazie mille paolo il tuo consiglio è stato una rivelazione, il mio  
script continua a non funzionare però ho fatto un passo avanti :D
adesso ho aggiunto altri test e mi da nuovi errori
  ti posto la classe e i test così vediamo se riesci ad indicarmi una  
via, ovviamente se vuoi ;)

classe
---

class JNui

require "net/http"
require "uri"

class JPage

   attr_accessor :url, :body, :list
   include Comparable

   def <=>(other)
     self.url.to_s <=> other.url.to_s
   end

   # crea una nuova istanza di JPage con un url o un oggetto URI
   def initialize(url)
     @url = url.class == URI.class ? url : JLink.uri(url)
     @body = JLink.get_page(@url)
     @list = JLink.get_links(@url)
   end

   #metodo di ausilio per i test
   def to_s
     return "url: #{@url} "
   end

end

class JPages < Array

   def self.generate(domain, link = '')
     jpages = JPages.new
     jpages.push(JPage.new(domain)) if link != ''
     jpages.each do |e|
       e.list.each do |t|
         jpages.push(JPage.new(t)) if in_domain?(domain,t)
       end
       self.sort!.uniq
     end
     return jpages
   end

   #metodo di ausilio
   def to_s
     list = ""
     self.each { |e| list += e.to_s }
     return list
   end

end

class JSite
   attr_accessor :base_url, :pages

   def initialize(base_url = '')
     @base_url = JLink.host(base_url)
     @pages = JPages.generate(@base_url, '')
   end

   #questo metodo serve oslo per ispezionare e di ausilio per i test
   def stampa
     puts "\nbase url: #{@base_url.class}"
     puts "pages class: #{@pages.class}"
     puts "pages: #{@pages.to_s}"
     puts "pages stampa prima pagina: #{@pages[0].to_s}"
   end

end

module JLink

   def self.uri(uri)
     return URI.parse(uri)
   end

   def self.host(url)
     return URI.parse(url).host
   end

   def self.get_page(uri)
     return Net::HTTP.get_response(uri)
   end
   #alias_method :page, :get_page

   def self.get_links(body, type = /http/)
     return URI.extract(body, type).sort!.uniq #FIXME genera un  
errore no method
   end
   #alias_method :links, :get_links

   def self.in_domain?(domain, uri)
     return uri.host == domain
   end
end

end
---

test, molto semplici
----

require "test/unit"

require "lib/jnui"

class Test_Jnui < Test::Unit::TestCase
   def setup
     @js = JNui::JSite.new('http://www.google.it')
     @jp = JNui::JPage.new('http://www.google.it')
     @jps = JNui::JPages.new.generate('http//www.google.it')
   end

   def test_jsite
     assert(JNui::JSite.new('http://www.google.it'), "Classe non  
inizializzata.")
     assert_equal(JNui::JSite, @js.class)
   end

   def test_stampa
     @js.stampa
   end

   def test_Jpage
     assert(JNui::JPage.new('http://www.google.it'), "jpage non funge.")
   end

   def test_jlink
     uri = JNui::JLink.uri("http://www.google.it")
     p uri
     assert(uri, "Failure message.")
   end

end
----

grazie comunque per i consigli ;)

luca sabato
---
nope --- the [nomad code]
email: ilramingo a gmail.com








More information about the Ml mailing list