Forum: Ruby Accentuated function names

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Jean-baptiste H. (Guest)
on 2008-12-15 11:27
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.
Robert K. (Guest)
on 2008-12-15 12:54
(Received via mailing list)
2008/12/15 Jean-baptiste H¨¦tier <removed_email_address@domain.invalid>:
>  def appr©À(R)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. :-)

Kind regards

robert
Jean-baptiste H. (Guest)
on 2008-12-15 13:03
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. :-)

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: <encoding name> -*-
I'm sure there's a way to do that in Ruby as well, but couldn't find it
anywhere :(
Jean-baptiste H. (Guest)
on 2008-12-15 13:15
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 :(

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

It probably hasn't been implemented yet... Oh well...
F. Senault (Guest)
on 2008-12-15 13:21
(Received via mailing list)
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 :(
>
> Mmmh, I just found the following link:
> http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/...
>
> It probably hasn't been implemented yet... Oh well...

It has.  In Ruby 1.9.

Fred
Jean-baptiste H. (Guest)
on 2008-12-15 14:44
F. Senault wrote:
> It has.  In Ruby 1.9.

Excellent !
Thanks Fred.
Pascal J. Bourguignon (Guest)
on 2008-12-15 15:41
(Received via mailing list)
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: <encoding name> -*-
> I'm sure there's a way to do that in Ruby as well, but couldn't find it
> anywhere :(

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; -*-
Ollivier R. (Guest)
on 2008-12-15 15:50
(Received via mailing list)
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: <encoding name> -*-

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.
This topic is locked and can not be replied to.