Pass data to a variable

Hello,

I’ve create a simple screen scraper which sends a message to a Jabber
client for notification. The scraper portion works as does the Jabber
portion but I’m having trouble passing the data from the scraper to the
Jabber client.

Here’s what gets all the data in the scraper portion

link.search("//font[@class=‘hosts’]").each do |host|

host.to_html.match(/[a-z]+[0-9]*.(foo|bar).[a-z]+/)

end

I then have Jabber setup as follows

cl = Client::new(myJID, false)
cl.connect
cl.auth(myPassword)
m = Message::new(to,
body).set_type(:normal).set_id(‘1’).set_subject(subject)
cl.send(m)
cl.close

I somehow have to get the data into the body variable. Any ideas?

Seth … wrote:

Hello,

I’ve create a simple screen scraper which sends a message to a Jabber
client for notification. The scraper portion works as does the Jabber
portion but I’m having trouble passing the data from the scraper to the
Jabber client.

Here’s what gets all the data in the scraper portion

link.search("//font[@class=‘hosts’]").each do |host|

host.to_html.match(/[a-z]+[0-9]*.(foo|bar).[a-z]+/)

end

I then have Jabber setup as follows

cl = Client::new(myJID, false)
cl.connect
cl.auth(myPassword)
m = Message::new(to,
body).set_type(:normal).set_id(‘1’).set_subject(subject)
cl.send(m)
cl.close

I somehow have to get the data into the body variable. Any ideas?

Not quite sure if I understand the question, but you can pass any
arbitrary ruby object as the text body by serializing it using YAML. ie:

require ‘yaml’

body = hosts.to_yaml
m = Message::new(to, body)…

On 5/8/07, Seth … [email protected] wrote:

link.search(“//font[@class=‘hosts’]”).each do |host|
m = Message::new(to,
body).set_type(:normal).set_id(‘1’).set_subject(subject)
cl.send(m)
cl.close

I somehow have to get the data into the body variable. Any ideas?


Posted via http://www.ruby-forum.com/.

#map and #to_yaml should do it

body = link.search(“//font[@class=‘hosts’]”).map do |host|
host.to_html.match(/[a-z]+[0-9]*.(foo|bar).[a-z]+/)
end.to_yaml

On May 8, 2007, at 6:58 AM, Enrique Comba R. wrote:

Being so I just set up a web site http://www.rubypatterns.org where
I hope we can all share pattern knowledge in Ruby. It is a wiki and
be warned, there is no content at all there yet. Just a blank page
to be edited by anyone so that we can start a pattern catalogue for
all the Ruby developers out there…

Just FYI:

http://wiki.rubygarden.org/Ruby/page/show/ExampleDesignPatternsInRuby

James Edward G. II

Hi everyone!

I have recently joined this group to see what things are being
discussed Ruby. And I have to say that there is a lot of interesting
information shared in this group!

I come from a Java environment (have been coding in Java for the past
11 years) and I must admit that I was amazed by Ruby when I stumbled
onto it not long ago.

One of my hobbies has always been the study of design patterns,
refactoring, etc… And in general the way we can improve code to
make it more maintainable, etc.

A sentence comes into my mind on this:

Any fool can write code that a computer understands, it takes a good
developer to write code that a human being understands

I think it was Kent Beck who said this… Not sure though.

Anyway, Ruby, as far as I can tell really adapts to this words pretty
well and I consider it a fantastic OO language.

Being so I just set up a web site http://www.rubypatterns.org where I
hope we can all share pattern knowledge in Ruby. It is a wiki and be
warned, there is no content at all there yet. Just a blank page to be
edited by anyone so that we can start a pattern catalogue for all the
Ruby developers out there…

Well, I hope you like the idea!

Best regards,

Enrique Comba R.
http://www.rubypatterns.org

On 5/8/07, James Edward G. II [email protected] wrote:

http://wiki.rubygarden.org/Ruby/page/show/ExampleDesignPatternsInRuby

James Edward G. II

Enrique
I just left my footprints on your Wiki, but I did not understand
“pattern” in the strict sense of “Design Patterns”.
I strongly believe that Design Patterns are not related to specific
languages.
[That does not mean at all that it is not interesting to see how you
implement them best in Ruby, just that I did not interpret your idea
as such]

Cheers
Robert

Being so I just set up a web site http://www.rubypatterns.org where

Is it too late to switch to a Ruby wiki? Instead of PHP?

Thanks for the link!

:wink:

Hey Robert,

you are absolutely right with the statement that a design pattern is
language independent, still the way to implement a specific design
pattern differs from language to language…

Take the Observer for example. In Java for instance no one would
think to implement this pattern from scratch (unless there is a very
specific need not covered by the language) as it is available in the
language (aka Observer and Observable).

I do strongly believe that we would profit in general by a body of
knowledge in Ruby Patterns as there might be even patterns that only
apply to Ruby development… and for those patterns that are commonly
known (Visitor, Strategy, Factory Method, etc) we still can build
some advice for other novice developers that need advice…

Thanks a lot for your input!

Cheers,

Enrique Comba R.

On 5/8/07, Enrique Comba R. [email protected] wrote:

I do strongly believe that we would profit in general by a body of
knowledge in Ruby Patterns as there might be even patterns that only
apply to Ruby development… and for those patterns that are commonly
known (Visitor, Strategy, Factory Method, etc) we still can build
some advice for other novice developers that need advice…

Thanks a lot for your input!

Cheers,
Sure I did not say the contrary, go ahead and delete my entry about
blocks or I can do it myself if you are busy.

Cheers
Robert

Hey Philip,

well, it is never to late :wink:

I just wanted to start this and see what happens, but definitely we
can look forward to change to a Ruby wiki :slight_smile:

Cheers,

Enrique Comba R.

Why should we delete it?

Actually I think that the block is a valid pattern specifically for
the Ruby language!

I really appreciate your input and I hope we can get this moving…

Cheers,

Enrique Comba R.

Chris C. wrote:

#map and #to_yaml should do it

body = link.search("//font[@class=‘hosts’]").map do |host|
host.to_html.match(/[a-z]+[0-9]*.(foo|bar).[a-z]+/)
end.to_yaml

Holy crap! That’s why I love this site. Thanks a million. I’m slowly
learning Ruby but I’ve always been more of an admin than a developer.

Thanks again

–seth

On Tue, 8 May 2007, Enrique Comba R. wrote:

I come from a Java environment (have been coding in Java for the past 11
years) and I must admit that I was amazed by Ruby when I stumbled onto it not
long ago.

One of my hobbies has always been the study of design patterns, refactoring,
etc… And in general the way we can improve code to make it more
maintainable, etc.

Be warned that several Javarish design patterns become practically
null ops in Ruby because…

  • Everything in Ruby, including and especially Classes are objects.
  • Everything in Ruby is open for extension at compile time.
  • The Ruby module / class structure is hackable at run time.

Thus, especially the construction patterns from the GoF practically
vanish into the background of ruby just doing what ruby does.

So don’t be disappointed when some of your Design Pattern translation
efforts seem to give trivial results, that should be make you say Wow!
Ruby is powerful!

John C. Phone : (64)(3) 358 6639
Tait Electronics Fax : (64)(3) 359 4632
PO Box 1645 Christchurch Email : [email protected]
New Zealand

A sentence comes into my mind on this:

    Any fool can write code that a computer understands, it takes a good

developer to write code that a human being understands

I think it was Kent Beck who said this… Not sure though.

That was Martin F. in “Refactoring.”

I just want to echo the sentiment that design patterns are less useful
in Ruby than in Java or C. However, I’m not totally sure about that.
It’s definitely a popular view, and definitely true in some cases, but
I’d stop short of dismissing the entire book. Some of the Gang of Four
examples are in Smalltalk, not C, and some Smalltalkers say they
consider Ruby to be a Unix dialect of Smalltalk. Some design patterns
break down into about a line and a half of Ruby, Decorator I think
being a good example, but really you should view “Design Patterns” as
a set of tools whose usefulness varies by language. I think the
Flyweight pattern is probably useful in any language, it seems more a
sanity preservation device than anything else. Could be wrong though.

On 5/8/07, Enrique Comba R. [email protected] wrote:

Why should we delete it?
Donnu I have difficulties to grasp the idea…

Actually I think that the block is a valid pattern specifically for
the Ruby language!
I guess so :wink:

I really appreciate your input and I hope we can get this moving…

… but maybe it will become clearer in the future.

Cheers,
Robert

On Wed, 9 May 2007, Giles B. wrote:

I think the Flyweight pattern is probably useful in any language, it
seems more a sanity preservation device than anything else. Could be
wrong though.

I cannot resist…

:just_a_symbol_of_its_usefulness

John C. Phone : (64)(3) 358 6639
Tait Electronics Fax : (64)(3) 359 4632
PO Box 1645 Christchurch Email : [email protected]
New Zealand

Hi John!

Thanks for the warnings :wink:

Actually I am not only trying to translate the GoF patterns into
Ruby, there are zillions of different patterns…

“Each pattern is a three-part rule, which expresses a relation
between a certain context, a problem, and a solution.” as Christopher
Alexander says.

And I don’t believe that this cases don’t apply for Ruby, they just
do it in a different way. If you take the creational patterns in GoF
they might be differences in the implementation, but the problems
still exists…

I will not be disappointed :wink: Ruby is powerful! But with any language
in the world you can use it wrong and lose most of it’s power…

Cheers,

Enrique Comba R.

Another take on Ruby Patterns - you might be better off looking for
Ruby idioms. Programming Java and programming Ruby can be very
different experiences, and it’s always good to approach a new topic
with the mind of a beginner. Techniques that would be impossible or
insane in Java are sometimes the best way to do something in Ruby.

On 5/9/07, Giles B. [email protected] wrote:

Another take on Ruby Patterns - you might be better off looking for
Ruby idioms.
That was what I was understanding, thx Giles.

Robert