Accentuated function names


#1

Hello,

I’ve started a new project in Ruby. For once, my sourcecode is not in
English, but in French, and I’d like to know if its possible to have
accentuated letters for function names in the sourcecode.

I have encoded my file in UTF-8 and it is parsed fine on Linux, but on
Windows, I get warnings and errors:
main.rb:16: Invalid char `\303’ in expression

Also, the accents do not display properly in the error messages:
main.rb:34: syntax error, unexpected tFID, expecting ‘\n’ or ‘;’
def appr├®cie?(voisin)
(instead of “apprécie?(voisin)”)

Is there a way to specify sourcefile encoding? I could drop the accents
in the source, but they make the code much more readable!

Thanks.


#2

2008/12/15 Jean-baptiste H¨¦tier removed_email_address@domain.invalid:

def appr©À®cie?(voisin)
(instead of “appr¨¦cie?(voisin)”)

Is there a way to specify sourcefile encoding? I could drop the accents
in the source, but they make the code much more readable!

IMHO it is generally a good idea to stick with 7 bit ASCII in source
code. Also, I would never use my mother tongue for source code,
partly because keywords are English anyway (even though Matz is
Japanese) and partly because English is the lingua franca of IT. I
know, this is not what you wanted to hear. :slight_smile:

Kind regards

robert


#3

Robert K. wrote:

IMHO it is generally a good idea to stick with 7 bit ASCII in source
code. Also, I would never use my mother tongue for source code,
partly because keywords are English anyway (even though Matz is
Japanese) and partly because English is the lingua franca of IT. I
know, this is not what you wanted to hear. :slight_smile:

Thanks for your answer!

Yeah, I’ll probably switch back to English… but I’m still interested
in a solution. In Python you can define the file encoding in some kind
of file header:
#!/usr/bin/python
# -- coding: --
I’m sure there’s a way to do that in Ruby as well, but couldn’t find it
anywhere :frowning:


#4

Jean-baptiste Hétier wrote:

I’m sure there’s a way to do that in Ruby as well, but couldn’t find it
anywhere :frowning:

Mmmh, I just found the following link:
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/35569

It probably hasn’t been implemented yet… Oh well…


#5

Le 15 décembre 2008 à 12:08, Jean-baptiste Hétier a écrit :

Jean-baptiste Hétier wrote:

I’m sure there’s a way to do that in Ruby as well, but couldn’t find it
anywhere :frowning:

Mmmh, I just found the following link:
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/35569

It probably hasn’t been implemented yet… Oh well…

It has. In Ruby 1.9.

Fred


#6

Jean-baptiste Hétier removed_email_address@domain.invalid writes:

in a solution.
Ne te laisse pas dominer par le langage ! La solution c’est de passer
de MatzacredLisp à Common Lisp (par exemple: http://clisp.cons.org) :

C/USER[4]> (defun décrémenter (x) (1- x))
DÉCRÉMENTER
C/USER[5]> (décrémenter 42)
41
C/USER[6]>

In Python you can define the file encoding in some kind
of file header:
#!/usr/bin/python
# -- coding: --
I’m sure there’s a way to do that in Ruby as well, but couldn’t find it
anywhere :frowning:

AFAIK, python doesn’t use that line.
It’s emacs that uses to store buffer local variables.

All my scripts start with:

#!/usr/bin/clisp -ansi -q
;; -*- mode:lisp; coding:utf-8; -*-

#7

F. Senault wrote:

It has. In Ruby 1.9.

Excellent !
Thanks Fred.


#8

In article removed_email_address@domain.invalid,
Jean-baptiste Hétier removed_email_address@domain.invalid wrote:

Yeah, I’ll probably switch back to English… but I’m still interested
in a solution. In Python you can define the file encoding in some kind
of file header:
#!/usr/bin/python
# -- coding: --

As it was already said, 1.9 does support the Encoding string but for
1.8, you may want to try adding “-Ku” to your Ruby invocation.

395 [14:46] roberto@roberto-al:/tmp> ruby -Ku foo.rb
Bonjour
396 [14:46] roberto@roberto-al:/tmp> cat foo.rb
#! /opt/local/bin/ruby -Ku

def été(foo)
puts(foo)
end

été(“Bonjour”)

With foo.rb written with utf-8 encoding.