[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

[ANN] mechanize 0.7.3 Released

Aaron Patterson

3/12/2008 8:17:00 PM

mechanize version 0.7.3 has been released!

* <http://mechanize.rubyforg...

The Mechanize library is used for automating interaction with websites.
Mechanize automatically stores and sends cookies, follows redirects,
can follow links, and submit forms. Form fields can be populated and
submitted. Mechanize also keeps track of the sites that you have
visited as
a history.

Changes:

# Mechanize CHANGELOG

## 0.7.3

* Pages are now yielded to a blocks given to WWW::Mechanize#get
* WWW::Mechanize#get now takes hash arguments for uri parameters.
* WWW::Mechanize#post takes an IO object as a parameter and posts correctly.
* Fixing a strange zlib inflate problem on windows

* <http://mechanize.rubyforg...

--
Aaron Patterson
http://tenderlovem...

8 Answers

Roger Pack

3/12/2008 10:59:00 PM

0

Aaron Patterson wrote:
> mechanize version 0.7.3 has been released!

Thanks for mechanize--we use mechanize at work and it works well.

Question on strings:
I seem incapable of figuring out how to 'recreate' this string in
"string" format:

Here it is byte by byte

bytes = [100, 101, 110, 116, 226, 60, 56, 48, 62, 60, 57, 57, 62, 115,
32, 112, 114, 101, 118, 105, 111, 117]
for b in bytes do all << b; end # create the string
all == "dent?<80><99>s previou" # it compared with itself in string form


?
Thanks!
--
Posted via http://www.ruby-....

Aaron Patterson

3/12/2008 11:53:00 PM

0

On Thu, Mar 13, 2008 at 07:58:44AM +0900, Roger Pack wrote:
> Aaron Patterson wrote:
> > mechanize version 0.7.3 has been released!
>
> Thanks for mechanize--we use mechanize at work and it works well.

Thank you!

>
> Question on strings:
> I seem incapable of figuring out how to 'recreate' this string in
> "string" format:
>
> Here it is byte by byte
>
> bytes = [100, 101, 110, 116, 226, 60, 56, 48, 62, 60, 57, 57, 62, 115,
> 32, 112, 114, 101, 118, 105, 111, 117]
> for b in bytes do all << b; end # create the string
> all == "dent?<80><99>s previou" # it compared with itself in string form

Try using pack:

bytes = [100, 101, 110, 116, 226, 60, 56, 48, 62, 60, 57, 57, 62, 115,
32, 112, 114, 101, 118, 105, 111, 117]
bytes.pack('C*') == "dent?<80><99>s previou"

--
Aaron Patterson
http://tenderlovem...

7stud --

3/13/2008 12:13:00 AM

0

Roger Pack wrote:
> Aaron Patterson wrote:
>> mechanize version 0.7.3 has been released!
>
> Thanks for mechanize--we use mechanize at work and it works well.
>
> Question on strings:
> I seem incapable of figuring out how to 'recreate' this string in
> "string" format:
>
> Here it is byte by byte
>
> bytes = [100, 101, 110, 116, 226, 60, 56, 48, 62, 60, 57, 57, 62, 115,
> 32, 112, 114, 101, 118, 105, 111, 117]
> for b in bytes do all << b; end # create the string
> all == "dent?<80><99>s previou" # it compared with itself in string form
>
>
> ?
> Thanks!


ascii_codes = [100, 101, 110, 116, 226, 60, 56, 48, 62, 60, 57, 57, 62,
115,
32, 112, 114, 101, 118, 105, 111, 117]
str = ""

for code in ascii_codes
str << code.chr
end

puts str
--
Posted via http://www.ruby-....

William James

3/13/2008 2:35:00 AM

0

On Mar 12, 4:58 pm, Roger Pack <rogerpack2...@gmail.com> wrote:
> Aaron Patterson wrote:
> > mechanize version 0.7.3 has been released!
>
> Thanks for mechanize--we use mechanize at work and it works well.
>
> Question on strings:
> I seem incapable of figuring out how to 'recreate' this string in
> "string" format:
>
> Here it is byte by byte
>
> bytes = [100, 101, 110, 116, 226, 60, 56, 48, 62, 60, 57, 57, 62, 115,
> 32, 112, 114, 101, 118, 105, 111, 117]
> for b in bytes do all << b; end # create the string

bytes = [100, 101, 110, 116, 226, 60, 56, 48, 62, 60, 57, 57,
62, 115, 32, 112, 114, 101, 118, 105, 111, 117]

puts bytes.map{|n| n.chr}.join

David A. Black

3/13/2008 2:56:00 AM

0

Hi --

On Thu, 13 Mar 2008, Aaron Patterson wrote:

> On Thu, Mar 13, 2008 at 07:58:44AM +0900, Roger Pack wrote:
>> Aaron Patterson wrote:
>>> mechanize version 0.7.3 has been released!
>>
>> Thanks for mechanize--we use mechanize at work and it works well.
>
> Thank you!
>
>>
>> Question on strings:
>> I seem incapable of figuring out how to 'recreate' this string in
>> "string" format:
>>
>> Here it is byte by byte
>>
>> bytes = [100, 101, 110, 116, 226, 60, 56, 48, 62, 60, 57, 57, 62, 115,
>> 32, 112, 114, 101, 118, 105, 111, 117]
>> for b in bytes do all << b; end # create the string
>> all == "dent?<80><99>s previou" # it compared with itself in string form
>
> Try using pack:

In other words:

pack, Pack!

The roster of community members whose last names are core methods
(give or take a capital letter) is growing. There are at least three
at this point (Freeze, Keys, and Pack).


David

--
Upcoming Rails training from David A. Black and Ruby Power and Light:
ADVANCING WITH RAILS, April 14-17 2008, New York City
CORE RAILS, June 24-27 2008, London (Skills Matter)
See http://www.r... for details. Berlin dates coming soon!

Roger Pack

3/13/2008 3:11:00 AM

0

Questions:

The following ways all recreate my original string, however I am having
trouble getting the comparison work to itself expressed in string
form--it's like the string form doesn't express all the inside chars or
something--am I missing something? Is there a way to recreate the
string along the lines of "dent?\226" and, as a follow up, is
complicated_string.inspect just not displaying the interior characters
right?


>> bytes = [100, 101, 110, 116, 226, 60, 56, 48, 62, 60, 57, 57, 62, 115,
?> 32, 112, 114, 101, 118, 105, 111, 117]
>> bytes.pack('C*') == "dent?<80><99>s previou"
=> false
>> str = ""
=> ""
>>
?> for code in bytes
>> str << code.chr
>> end
=> [100, 101, 110, 116, 226, 60, 56, 48, 62, 60, 57, 57, 62, 115, 32,
112, 114, 101, 118, 105, 111, 117]
>> str == "dent?<80><99>s previou"
=> false
>> str = bytes.map{|n| n.chr}.join
=> "dent?<80><99>s previou"
>> str == "dent?<80><99>s previou"
=> false

Just wondering if anybody can enlighten me.
Guess we just need more people named by Ruby names, huh?
Take care.
-R
--
Posted via http://www.ruby-....

William James

3/13/2008 6:23:00 AM

0



Roger Pack wrote:
> Questions:
>
> The following ways all recreate my original string, however I am having
> trouble getting the comparison work to itself expressed in string
> form--it's like the string form doesn't express all the inside chars or
> something--am I missing something? Is there a way to recreate the
> string along the lines of "dent?\226" and, as a follow up, is
> complicated_string.inspect just not displaying the interior characters
> right?
>
>
> >> bytes = [100, 101, 110, 116, 226, 60, 56, 48, 62, 60, 57, 57, 62, 115,
> ?> 32, 112, 114, 101, 118, 105, 111, 117]
> >> bytes.pack('C*') == "dent?<80><99>s previou"
> => false
> >> str = ""
> => ""
> >>
> ?> for code in bytes
> >> str << code.chr
> >> end
> => [100, 101, 110, 116, 226, 60, 56, 48, 62, 60, 57, 57, 62, 115, 32,
> 112, 114, 101, 118, 105, 111, 117]
> >> str == "dent?<80><99>s previou"
> => false
> >> str = bytes.map{|n| n.chr}.join
> => "dent?<80><99>s previou"
> >> str == "dent?<80><99>s previou"
> => false

irb(main):002:0> ?A
=> 65
irb(main):003:0> ??
=> 63
irb(main):004:0> 226.chr
=> "\342"
irb(main):005:0> puts 226.chr
G

The character whose ASCII code is 226 is not a question mark.
The ASCII code of a question mark is 63.

irb(main):008:0> puts [100, 101, 110, 116, 226].map{|n| n.chr}.join
dentG
irb(main):009:0> "342".to_i(8)
=> 226

Octal for 226 is 342.

Aaron Patterson

3/13/2008 5:22:00 PM

0

On Thu, Mar 13, 2008 at 11:56:28AM +0900, David A. Black wrote:
> Hi --
>
> On Thu, 13 Mar 2008, Aaron Patterson wrote:
>
>> On Thu, Mar 13, 2008 at 07:58:44AM +0900, Roger Pack wrote:
>>> Aaron Patterson wrote:
>>>> mechanize version 0.7.3 has been released!
>>>
>>> Thanks for mechanize--we use mechanize at work and it works well.
>>
>> Thank you!
>>
>>>
>>> Question on strings:
>>> I seem incapable of figuring out how to 'recreate' this string in
>>> "string" format:
>>>
>>> Here it is byte by byte
>>>
>>> bytes = [100, 101, 110, 116, 226, 60, 56, 48, 62, 60, 57, 57, 62, 115,
>>> 32, 112, 114, 101, 118, 105, 111, 117]
>>> for b in bytes do all << b; end # create the string
>>> all == "dent?<80><99>s previou" # it compared with itself in string form
>>
>> Try using pack:
>
> In other words:
>
> pack, Pack!
>
> The roster of community members whose last names are core methods
> (give or take a capital letter) is growing. There are at least three
> at this point (Freeze, Keys, and Pack).

I've submitted my patch to add the "patterson" method to Array, but I
haven't heard anything back.....

--
Aaron Patterson
http://tenderlovem...