I am running ruby 1.8.6 patchlevel 111 on Windows XP(same problem with
OS X). I am wondering why each_char doesn''t work for me? I looked at
the documentation and it shows ''each_char'', however when I
look at the
results of class.instance_methods.sort, each_char is nowhere to be
found. Any explanations to why I can''t use it? Thanks
-Juan
---------------------------------------------------------- Class:
String
A +String+ object holds and manipulates an arbitrary sequence of
bytes, typically representing characters. String objects may be
created using +String::new+ or as literals.
Because of aliasing issues, users of strings should be aware of
the
methods that modify the contents of a +String+ object. Typically,
methods with names ending in ``!'''' modify their receiver,
while
those without a ``!'''' return a new +String+. However,
there are
exceptions, such as +String#[]=+.
------------------------------------------------------------------------
User defined methods to be added to String.
------------------------------------------------------------------------
Includes:
---------
Comparable(<, <=, ==, >, >=, between?), Enumerable(all?, any?,
collect, detect, each_cons, each_slice, each_with_index, entries,
enum_cons, enum_slice, enum_with_index, find, find_all, grep,
include?, inject, inject, map, max, member?, min, partition,
reject, select, sort, sort_by, to_a, to_set, zip)
Constants:
----------
DeletePatternCache: {}
HashCache: {}
PATTERN_EUC: ''[\xa1-\xfe][\xa1-\xfe]''
PATTERN_SJIS:
''[\x81-\x9f\xe0-\xef][\x40-\x7e\x80-\xfc]''
PATTERN_UTF8: ''[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-
\xbf]
[\x80-\xbf]''
RE_EUC: Regexp.new(PATTERN_EUC, 0, ''n'')
RE_SJIS: Regexp.new(PATTERN_SJIS, 0, ''n'')
RE_UTF8: Regexp.new(PATTERN_UTF8, 0, ''n'')
SUCC: {}
SqueezePatternCache: {}
TrPatternCache: {}
Class methods:
--------------
new, yaml_new
Instance methods:
-----------------
%, *, +, <<, <=>, ==, =~, [], []=, _expand_ch, _regex_quote,
block_scanf, capitalize, capitalize!, casecmp, center, chomp,
chomp!, chop, chop!, concat, count, crypt, delete, delete!,
downcase, downcase!, dump, each, each_byte, each_char, each_line,
empty?, end_regexp, eql?, expand_ch_hash, ext, gsub, gsub!, hash,
hex, include?, index, initialize_copy, insert, inspect, intern,
is_binary_data?, is_complex_yaml?, iseuc, issjis, isutf8, jcount,
jlength, jsize, kconv, length, ljust, lstrip, lstrip!, match,
mbchar?, next, next!, nstrip, oct, original_succ, original_succ!,
pathmap, pathmap_explode, pathmap_partial, pathmap_replace,
quote,
replace, reverse, reverse!, rindex, rjust, rstrip, rstrip!, scan,
scanf, size, slice, slice!, split, squeeze, squeeze!, strip,
strip!, sub, sub!, succ, succ!, sum, swapcase, swapcase!, to_f,
to_i, to_s, to_str, to_sym, to_yaml, toeuc, tojis, tosjis,
toutf16,
toutf8, tr, tr!, tr_s, tr_s!, unpack, upcase, upcase!, upto
>irb
irb(main):001:0> st="hithere"
=> "hithere"
irb(main):005:0> st.class.each_char{|s| puts s}
NoMethodError: undefined method `each_char'' for String:Class
from (irb):5
from :0
irb(main):011:0> st.class.instance_methods.sort
=> ["%", "*", "+", "<",
"<<", "<=", "<=>", "==",
"===", "=~", ">",
">=", "[]", "[]=", "__id__",
"__send__", "all?", "any?", "bet
ween?", "capitalize", "capitalize!",
"casecmp", "center", "chomp",
"chomp!", "chop", "chop!", "class",
"clone", "collect", "conc
at", "count", "crypt", "delete",
"delete!", "detect", "display",
"downcase", "downcase!", "dump", "dup",
"each", "each_byte", "e
ach_line", "each_with_index", "empty?",
"entries", "eql?", "equal?",
"extend", "find", "find_all", "freeze",
"frozen?", "grep",
"gsub", "gsub!", "hash", "hex",
"id", "include?", "index", "inject",
"insert", "inspect", "instance_eval",
"instance_of?", "inst
ance_variable_defined?", "instance_variable_get",
"instance_variable_set", "instance_variables",
"intern", "is_a?",
"kind_of?",
"length", "ljust", "lstrip", "lstrip!",
"map", "match", "max",
"member?", "method", "methods", "min",
"next", "next!", "nil?", "
object_id", "oct", "partition",
"private_methods",
"protected_methods", "public_methods", "reject",
"replace",
"respond_to?", "r
everse", "reverse!", "rindex", "rjust",
"rstrip", "rstrip!", "scan",
"select", "send", "singleton_methods",
"size", "slice", "sl
ice!", "sort", "sort_by", "split",
"squeeze", "squeeze!", "strip",
"strip!", "sub", "sub!", "succ",
"succ!", "sum", "swapcase",
"swapcase!", "taint", "tainted?",
"to_a", "to_f", "to_i", "to_s",
"to_str", "to_sym", "tr", "tr!",
"tr_s", "tr_s!", "type", "unp
ack", "untaint", "upcase", "upcase!",
"upto", "zip"]
irb(main):012:0>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
On Jun 25, 7:52 pm, jvazquez <Juanvazq...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I am running ruby 1.8.6 patchlevel 111 on Windows XP(same problem with > OS X). I am wondering why each_char doesn''t work for me? I looked at > the documentation and it shows ''each_char'', however when I look at the > results of class.instance_methods.sort, each_char is nowhere to be > found. Any explanations to why I can''t use it? Thanksyou need to require ''jcode'' Fred --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Cool, it works! what is the reason behind having to use jcode? On Jun 25, 2:07 pm, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On Jun 25, 7:52 pm, jvazquez <Juanvazq...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > I am running ruby 1.8.6 patchlevel 111 on Windows XP(same problem with > > OS X). I am wondering why each_char doesn''t work for me? I looked at > > the documentation and it shows ''each_char'', however when I look at the > > results of class.instance_methods.sort, each_char is nowhere to be > > found. Any explanations to why I can''t use it? Thanks > > you need to require ''jcode'' > > Fred--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On Jun 25, 9:16 pm, jvazquez <Juanvazq...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Cool, it works! what is the reason behind having to use jcode?That''s just where those methods are defined. Fred> > On Jun 25, 2:07 pm, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > wrote: > > > On Jun 25, 7:52 pm, jvazquez <Juanvazq...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > > I am running ruby 1.8.6 patchlevel 111 on Windows XP(same problem with > > > OS X). I am wondering why each_char doesn''t work for me? I looked at > > > the documentation and it shows ''each_char'', however when I look at the > > > results of class.instance_methods.sort, each_char is nowhere to be > > > found. Any explanations to why I can''t use it? Thanks > > > you need to require ''jcode'' > > > Fred--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
where do I look in the future to find where methods are defined? thanks On Jun 25, 3:18 pm, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On Jun 25, 9:16 pm, jvazquez <Juanvazq...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > Cool, it works! what is the reason behind having to use jcode? > > That''s just where those methods are defined. > > Fred > > > > > On Jun 25, 2:07 pm, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > > wrote: > > > > On Jun 25, 7:52 pm, jvazquez <Juanvazq...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > > > I am running ruby 1.8.6 patchlevel 111 on Windows XP(same problem with > > > > OS X). I am wondering why each_char doesn''t work for me? I looked at > > > > the documentation and it shows ''each_char'', however when I look at the > > > > results of class.instance_methods.sort, each_char is nowhere to be > > > > found. Any explanations to why I can''t use it? Thanks > > > > you need to require ''jcode'' > > > > Fred--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Perhaps a better answer to the "why is #each_char defined by jcode?" would be that String (in ruby 1.8) deals with bytes and jcode knows how to treat those bytes as a sequence of characters. This distinction is important as you move to ruby 1.9+ that has better support for treating Strings as characters (with an associated encoding). -Rob Rob Biedenharn http://agileconsultingllc.com Rob-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.org On Jun 25, 2008, at 4:22 PM, jvazquez wrote:> where do I look in the future to find where methods are defined? > thanks > > On Jun 25, 3:18 pm, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > wrote: >> On Jun 25, 9:16 pm, jvazquez <Juanvazq...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >> >>> Cool, it works! what is the reason behind having to use jcode? >> >> That''s just where those methods are defined. >> >> Fred >> >>> On Jun 25, 2:07 pm, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> >>> wrote: >> >>>> On Jun 25, 7:52 pm, jvazquez <Juanvazq...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >> >>>>> I am running ruby 1.8.6 patchlevel 111 on Windows XP(same >>>>> problem with >>>>> OS X). I am wondering why each_char doesn''t work for me? I >>>>> looked at >>>>> the documentation and it shows ''each_char'', however when I look >>>>> at the >>>>> results of class.instance_methods.sort, each_char is nowhere to be >>>>> found. Any explanations to why I can''t use it? Thanks >> >>>> you need to require ''jcode'' >> >>>> Fred--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Thank you, that explains a lot. I noticed in my 1.8.7 version, I
didn''t have any problems. This is what prompted me to find out my
issue. I know I can just write it to get it to work, I was just
wondering why it didn''t "work out of the box." Thank you for
clearing
this up.
ruby 1.8.7 (2008-06-20 patchlevel 22) [i686-linux]
[user@localhost ~]# irb
irb(main):001:0> st="hithere"
=> "hithere"
irb(main):002:0> st.each_char{|d| puts d}
h
i
t
h
e
r
e
=> "hithere"
irb(main):003:0>
On Jun 25, 3:39 pm, Rob Biedenharn
<R...-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.org>
wrote:> Perhaps a better answer to the "why is #each_char defined by
jcode?"
> would be that String (in ruby 1.8) deals with bytes and jcode knows
> how to treat those bytes as a sequence of characters. This
> distinction is important as you move to ruby 1.9+ that has better
> support for treating Strings as characters (with an associated
> encoding).
>
> -Rob
>
> Rob Biedenharn http://agileconsultingllc.com
> R...-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.org
>
> On Jun 25, 2008, at 4:22 PM, jvazquez wrote:
>
> > where do I look in the future to find where methods are defined?
> > thanks
>
> > On Jun 25, 3:18 pm, Frederick Cheung
<frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> > wrote:
> >> On Jun 25, 9:16 pm, jvazquez
<Juanvazq...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> >>> Cool, it works! what is the reason behind having to use jcode?
>
> >> That''s just where those methods are defined.
>
> >> Fred
>
> >>> On Jun 25, 2:07 pm, Frederick Cheung
<frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> >>> wrote:
>
> >>>> On Jun 25, 7:52 pm, jvazquez
<Juanvazq...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> >>>>> I am running ruby 1.8.6 patchlevel 111 on Windows
XP(same
> >>>>> problem with
> >>>>> OS X). I am wondering why each_char doesn''t
work for me? I
> >>>>> looked at
> >>>>> the documentation and it shows
''each_char'', however when I look
> >>>>> at the
> >>>>> results of class.instance_methods.sort, each_char is
nowhere to be
> >>>>> found. Any explanations to why I can''t use
it? Thanks
>
> >>>> you need to require ''jcode''
>
> >>>> Fred
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---