L
Leslie Viljoen
Hi people
I want to make a library which can extend the String class. I don't want to
keep putting the class String; def blah; end; end; at the top of all my
files, I just want to require 'StringExt'
This doesn't work, after I have 'require'd it into my file:
class String
def to_hex
unpack("C*").map{|b| b.to_s(16)}.join(" ")
end
end
So I tried this:
module StringExt
def to_hex
unpack("C*").map{|b| b.to_s(16)}.join(" ")
end
end
----
then in my file I put: require 'StringExt'; String.extend StringExt
..but that didn't work.
Then I tried:
s = "sdfdsfsdfsdF"
s.extend StringExt
s.to_hex
...but that didn't work.
In the Pragmatic Programmer there's an example, but the module is
defined in the same file as where it's used - and only the s.extend...
version then works.
I really want String.extend, to change all strings. How do a 'require'
a file that then changes the String class?
Les
I want to make a library which can extend the String class. I don't want to
keep putting the class String; def blah; end; end; at the top of all my
files, I just want to require 'StringExt'
This doesn't work, after I have 'require'd it into my file:
class String
def to_hex
unpack("C*").map{|b| b.to_s(16)}.join(" ")
end
end
So I tried this:
module StringExt
def to_hex
unpack("C*").map{|b| b.to_s(16)}.join(" ")
end
end
----
then in my file I put: require 'StringExt'; String.extend StringExt
..but that didn't work.
Then I tried:
s = "sdfdsfsdfsdF"
s.extend StringExt
s.to_hex
...but that didn't work.
In the Pragmatic Programmer there's an example, but the module is
defined in the same file as where it's used - and only the s.extend...
version then works.
I really want String.extend, to change all strings. How do a 'require'
a file that then changes the String class?
Les