[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

symbol confusions!!

Jay Pangmi

10/16/2008 12:08:00 PM

Hi, I'm new to ruby and I'm going thru pretty good as I've done java but
the only thing, at this point, thats really bothering me is the use of
symbols like:
%w{}
%r{}
%7d etc etc..

So, is there anywhere I can find good discussions about such symbols coz
until now I'm using it blindly... thanks
--
Posted via http://www.ruby-....

10 Answers

Rob Biedenharn

10/16/2008 12:44:00 PM

0

On Oct 16, 2008, at 8:07 AM, Jay Pangmi wrote:

> Hi, I'm new to ruby and I'm going thru pretty good as I've done java
> but
> the only thing, at this point, thats really bothering me is the use of
> symbols like:
> %w{}
> %r{}
> %7d etc etc..
>
> So, is there anywhere I can find good discussions about such symbols
> coz
> until now I'm using it blindly... thanks

Do you have a book like the Pickaxe?[1] That will go into great
detail on all the features that Ruby has to offer.

Briefly, however:

%w{} is a way to turn a list of words into an array:
%w{ one fish two fish }
=> [ "one", "fish", "two", "fish" ]

%r{} is a regular expression literal. %r{stuff.*} is like /stuff.*/
without having to quote slashes (which is the main reason to see it
used if you're matching a file path, for example)

%7d is probably a format specification from Kernel#sprintf or String#%
meaning a decimal value in a minimum of 7 columns:
"%7d"%42
=> " 42"

Oh, and "Kernel#sprintf" (generally, ClassName#method) means the
instance method 'sprintf' from the class (or module) 'Kernel' (so, the
'%' method from the String class).

-Rob


[1] http://www.pragprog.com/titles/ruby/progra...


Rob Biedenharn http://agileconsult...
Rob@AgileConsultingLLC.com



Jay Pangmi

10/16/2008 1:31:00 PM

0

Rob Biedenharn wrote:
>
> Do you have a book like the Pickaxe?[1] That will go into great
> detail on all the features that Ruby has to offer.
>
> Briefly, however:
>
> %w{} is a way to turn a list of words into an array:
> %w{ one fish two fish }
> => [ "one", "fish", "two", "fish" ]
>
> %r{} is a regular expression literal. %r{stuff.*} is like /stuff.*/
> without having to quote slashes (which is the main reason to see it
> used if you're matching a file path, for example)
>
> %7d is probably a format specification from Kernel#sprintf or String#%
> meaning a decimal value in a minimum of 7 columns:
> "%7d"%42
> => " 42"
>
> Oh, and "Kernel#sprintf" (generally, ClassName#method) means the
> instance method 'sprintf' from the class (or module) 'Kernel' (so, the
> '%' method from the String class).
>
> -Rob
>
>
> [1] http://www.pragprog.com/titles/ruby/progra...
>
>
> Rob Biedenharn http://agileconsult...
> Rob@AgileConsultingLLC.com

Thanks Rob you made my life lot easier.. no I don't have that book I
just have 'Agile Web Development with Rails 2nd Edt.' so, ruby is just a
small part here and hence internet has been my only source.
Also I confusion about the use of slashes:
%r{(\d{1,2}):(\d{1,2}):(\d{4})}
whats the use of forward slash here
and the '+' sign below:
split(/[^0-9]+/)
Also I think I've seen the use of other words with '%' like %w but I
don't remember which words in particular.

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

F. Senault

10/16/2008 1:43:00 PM

0

Le 16 octobre à 14:07, Jay Pangmi a écrit :

> So, is there anywhere I can find good discussions about such symbols coz
> until now I'm using it blindly... thanks

An excellent quick resource for Ruby can be found here :

http://www.zenspider.com/Languages/Ruby/Qui...

The use of % constructs is covered in the types section (in the strings,
arrays and regexen).

Your latter question about // is also covered - those are regular
expressions. A very quick reference is also included.

BTW, the best way to learn ruby itself (without rails) is to log on a
machine where it is installed and launch the irb console program. It
allows you to test snippets of code interactively :

15:41 fred@grappa:~> irb
>> %w(a b c d e f)
=> ["a", "b", "c", "d", "e", "f"]
>> %w(a b c d e f).is_a? Array
=> true

(What I type is after the >> prompt, the => is the response, i.e. what
the expression evaluates to.)

G'd luck and enjoy !

Fred
--
The PROPER way to handle HTML postings is to cancel the article, then
hire a hitman to kill the poster, his wife and kids, and fuck his dog
and smash his computer into little bits. Anything more is just
extremism. (Paul Tomblin in the SDM)

Brian Candler

10/16/2008 1:47:00 PM

0

Jay Pangmi wrote:
> Thanks Rob you made my life lot easier.. no I don't have that book I
> just have 'Agile Web Development with Rails 2nd Edt.' so, ruby is just a
> small part here and hence internet has been my only source.

The old, first edition version of the PragProg Programming Ruby book
(for ruby-1.6) is available for free online:
http://www.ruby-doc.org/docs/Progra...

The chapter entitled "The Ruby Language" goes into the constructs like
%w, %r, %q etc (near the top; scroll down to "General Delimited Input",
or click "General Delimited Input" in the index on the left hand side)

> Also I confusion about the use of slashes:
> %r{(\d{1,2}):(\d{1,2}):(\d{4})}
> whats the use of forward slash here
> and the '+' sign below:
> split(/[^0-9]+/)

Scroll down to "regular expression patterns" for the answer to these.

Hopefully this will convince you to buy the 2nd edition of Programming
Ruby. Avoid the 3rd unless you're experimenting with ruby 1.9.

I have only two Ruby books: this one, plus Agile Web Development with
Rails. They are both superb.

Regards,

Brian.
--
Posted via http://www.ruby-....

Rob Biedenharn

10/16/2008 2:41:00 PM

0

On Oct 16, 2008, at 9:31 AM, Jay Pangmi wrote:
> Rob Biedenharn wrote:
>>
>> Do you have a book like the Pickaxe?[1] That will go into great
>> detail on all the features that Ruby has to offer.
>>
>> Briefly, however:
>>
>> %w{} is a way to turn a list of words into an array:
>> %w{ one fish two fish }
>> => [ "one", "fish", "two", "fish" ]
>>
>> %r{} is a regular expression literal. %r{stuff.*} is like /stuff.*/
>> without having to quote slashes (which is the main reason to see it
>> used if you're matching a file path, for example)
>>
>> %7d is probably a format specification from Kernel#sprintf or
>> String#%
>> meaning a decimal value in a minimum of 7 columns:
>> "%7d"%42
>> => " 42"
>>
>> Oh, and "Kernel#sprintf" (generally, ClassName#method) means the
>> instance method 'sprintf' from the class (or module) 'Kernel' (so,
>> the
>> '%' method from the String class).
>>
>> -Rob
>>
>>
>> [1] http://www.pragprog.com/titles/ruby/progra...
>>
>>
>> Rob Biedenharn http://agileconsult...
>> Rob@AgileConsultingLLC.com
>
> Thanks Rob you made my life lot easier.. no I don't have that book I
> just have 'Agile Web Development with Rails 2nd Edt.' so, ruby is
> just a
> small part here and hence internet has been my only source.
> Also I confusion about the use of slashes:
> %r{(\d{1,2}):(\d{1,2}):(\d{4})}
> whats the use of forward slash here
> and the '+' sign below:
> split(/[^0-9]+/)
> Also I think I've seen the use of other words with '%' like %w but I
> don't remember which words in particular.
>
> Thanks.


Brian's and Fred's responses should help, too (esp. the link to the
earlier Pickaxe)

The \d is an escape within a regular expression that's equivalent to
[0-9] and + is like {1,} in regular expressions to match "one or more
of...". x+ is xx* or x{1,} /[^0-9]+/ is a sequence of one or more
non-digits.

-Rob

Rob Biedenharn http://agileconsult...
Rob@AgileConsultingLLC.com


Frederick Cheung

10/16/2008 2:49:00 PM

0


On 16 Oct 2008, at 14:31, Jay Pangmi wrote:
>>
>
> Thanks Rob you made my life lot easier.. no I don't have that book I
> just have 'Agile Web Development with Rails 2nd Edt.' so, ruby is
> just a
> small part here and hence internet has been my only source.
The first edition of the pickaxe is available online http://www.rubycentral...
A little out of date (it covers ruby 1.6) but there's plenty of useful
stuff in there

There's also the humble little ruby book: http://www.humblelittlerub...
which is a free download
>
> Also I confusion about the use of slashes:
> %r{(\d{1,2}):(\d{1,2}):(\d{4})}
> whats the use of forward slash here
> and the '+' sign below:
> split(/[^0-9]+/)
/ can be used to delimit a regular expression. In a regular expression
+ denotes "one or more times")

>
> Also I think I've seen the use of other words with '%' like %w but I

%r (alternative way of writing regular expressions), %x (like `), %q
and %Q (like ' and " respectively) and %w are the common ones

Fred

The Higgs bozo

10/16/2008 5:15:00 PM

0

Jay Pangmi wrote:
> Hi, I'm new to ruby and I'm going thru pretty good as I've done java but
> the only thing, at this point, thats really bothering me is the use of
> symbols like:
> %w{}
> %r{}
> %7d etc etc..

Questions like these are understandable because google does not appear
to index '%'. In this case googling for "ruby cheat sheet" is a good
first step.
--
Posted via http://www.ruby-....

Jay Pangmi

10/17/2008 11:14:00 AM

0

wow!! thanks guys.. Now things've already started making sense..
--
Posted via http://www.ruby-....

Artem Voroztsov

10/19/2008 8:38:00 AM

0

2008/10/17 Jay Pangmi <jaeezzy@gmail.com>:
> wow!! thanks guys.. Now things've already started making sense..
> --
> Posted via http://www.ruby-....
>
>

Threre is also %s{..}:

%q{abc def} #=> String "abc def"
%s{abc def} #=> Symbol :"abc def"


Just my 2 cents :)

Artem

Jeremy McAnally

10/20/2008 4:57:00 AM

0

Just for fun, you can also use any delimiter you want in place of {}.

>> %w( see me run )
=> ["see", "me", "run"]

>> %q/ fun time /
=> " fun time "

>> %w* fun time! *
=> ["fun", "time!"]

>> %r# ha #
=> / ha /

--Jeremy

On Sun, Oct 19, 2008 at 3:37 AM, Artem Voroztsov
<artem.voroztsov@gmail.com> wrote:
> 2008/10/17 Jay Pangmi <jaeezzy@gmail.com>:
>> wow!! thanks guys.. Now things've already started making sense..
>> --
>> Posted via http://www.ruby-....
>>
>>
>
> Threre is also %s{..}:
>
> %q{abc def} #=> String "abc def"
> %s{abc def} #=> Symbol :"abc def"
>
>
> Just my 2 cents :)
>
> Artem
>
>



--
http://jeremymca...
http:/...
http://omgb...

My books:
http://manning.com...
http://humblelittlerub... (FREE!)