Alex Young wrote: > Cd Cd wrote: >> puts response.body.scan(/<img src="(.*?)"/m).uniq >> end >> >> I know you can add methods to an existing class, but in the above code, >> there is the following: >> >> puts response.body.scan(/<img src="(.*?)"/m).uniq >> >> I don't get how the methods are being added to the class in this case. >> Is uniq() being added to scan(), the being added to body() which in turn >> is added to the response object? > They aren't being added to a class so much as called on the result of > each method call. You could rewrite it like this: > > b = response.body > imgs = b.scan(/<img src="(.*?)"/m) > uniq_imgs = imgs.uniq > puts uniq_imgs > > HTH But if I go something like #!/usr/bin/ruby -w require 'net/http' h=Net::HTTP.new('www.pragmaticprogrammer.com',80) response=h.get('/index.html',nil) if(response.message=="OK") b = response.body p b end 'b' will print out the body of the web page. So 'b' in this case would be become the receiver (ie imgs = b.scan(/<img src="(.*?)"/m)), then we go from getting the value 'b' (via p b) to 'b' acting like a method (via imgs = b.scan(/<img src="(.*?)"/m))? -- Posted via http://www.ruby-forum.com/.