What's the "#" for?

R

redrhodes

I've started on my first ruby project and came accross the following
code from:
http://habtm.com/articles/2005/11/13/your-site-doesnt-look-too-good-in-x-browser

Since I've managed to understand most of what's going on here, but I
still can't find a reference on how and why to use "#". From
following the code it looks like an escape character for a variable to
be populated when enclosed within quotes. Does anyone have enough
understanding on the syntax to help a ruby nubie?

class Hash
def to_sql
sql = keys.sort {|a,b| a.to_s<=>b.to_s}.inject([[]]) do |arr, key|
arr[0] << "#{key} = ?"
arr << self[key]
end
[sql[0].join(' AND ')] + sql[1..-1]
end
end

Thanks,
Richard
 
J

Joe Van Dyk

I've started on my first ruby project and came accross the following
code from:
http://habtm.com/articles/2005/11/13/your-site-doesnt-look-too-good-in-x-= browser

Since I've managed to understand most of what's going on here, but I
still can't find a reference on how and why to use "#". From
following the code it looks like an escape character for a variable to
be populated when enclosed within quotes. Does anyone have enough
understanding on the syntax to help a ruby nubie?

class Hash
def to_sql
sql =3D keys.sort {|a,b| a.to_s<=3D>b.to_s}.inject([[]]) do |arr, key= |
arr[0] << "#{key} =3D ?"
arr << self[key]
end
[sql[0].join(' AND ')] + sql[1..-1]
end
end

a =3D "hay guys"
puts "this is what a is: #{ a }"

prints:
this is what a is: hay guys
 
J

J. Ryan Sobol

I've started on my first ruby project and came accross the following
code from:
http://habtm.com/articles/2005/11/13/your-site-doesnt-look-too-
good-in-x-browser

Since I've managed to understand most of what's going on here, but I
still can't find a reference on how and why to use "#". From
following the code it looks like an escape character for a
variable to
be populated when enclosed within quotes. Does anyone have enough
understanding on the syntax to help a ruby nubie?

class Hash
def to_sql
sql = keys.sort {|a,b| a.to_s<=>b.to_s}.inject([[]]) do |arr,
key|
arr[0] << "#{key} = ?"
arr << self[key]
end
[sql[0].join(' AND ')] + sql[1..-1]
end
end

a = "hay guys"
puts "this is what a is: #{ a }"

prints:
this is what a is: hay guys

From the Ruby.new chapter in Programming Ruby : The Pragmatic
Programmer's Guide (http://whytheluckystiff.net/ruby/pickaxe/)

"The second thing that Ruby does with double-quoted strings is
expression interpolation. Within the string, the sequence #
{ expression } is replaced by the value of expression. We could use
this to rewrite our previous method.

def sayGoodnight(name)
result = "Goodnight, #{name}"
return result
end

When Ruby constructs this string object, it looks at the current
value of name and substitutes it into the string. Arbitrarily complex
expressions are allowed in the #{...} construct."
 
J

Jeff Cohen

Just wondering, what language has been your main programming language
until now?

I'm always curious to know where the influx of new Ruby programmers are
coming from. I'm from a C++/C#/.Net background and while the syntax is
similar to both C++ and C# some things are definitely a bit different.

Jeff
 
R

redrhodes

Joe and Ryan, thanks for the examples and reference. I'll take a
closer looke at the pickaxe in the future.

Af for my previous programming experience: I've been a jack of all
trades for a while. But, I have the most experience in Perl, Python,
and C.

Richard
 

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
474,201
Messages
2,571,049
Members
47,652
Latest member
Campbellamy

Latest Threads

Top