[ANN] mechanize 0.7.3 Released

mechanize version 0.7.3 has been released!

* <http://mechanize.rubyforge.org/>

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.rubyforge.org/>

···

--
Aaron Patterson
http://tenderlovemaking.com/

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-forum.com/\.

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"

···

On Thu, Mar 13, 2008 at 07:58:44AM +0900, Roger Pack wrote:

--
Aaron Patterson
http://tenderlovemaking.com/

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-forum.com/\.

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

···

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

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.rubypal.com for details. Berlin dates coming soon!

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-forum.com/\.

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
Γ

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
dentΓ
irb(main):009:0> "342".to_i(8)
=> 226

Octal for 226 is 342.

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

···

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).

--
Aaron Patterson
http://tenderlovemaking.com/