[ANN] mechanize 0.7.3 Released

A

Aaron Patterson

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/>
 
R

Roger Pack

Aaron said:
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!
 
A

Aaron Patterson

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"
 
7

7stud --

Roger said:
Aaron said:
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
 
W

William James

Aaron said:
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
 
D

David A. Black

Hi --

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
 
R

Roger Pack

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]=> false

Just wondering if anybody can enlighten me.
Guess we just need more people named by Ruby names, huh?
Take care.
-R
 
W

William James

Roger said:
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]=> 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.
 
A

Aaron Patterson

Hi --

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

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,065
Latest member
OrderGreenAcreCBD

Latest Threads

Top