Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > Method for turning strings into code

Reply
Thread Tools

Method for turning strings into code

 
 
Steve Litt
Guest
Posts: n/a
 
      12-30-2005
Hi all,

What is the Ruby technique for turning strings into executable code?

SteveT

Steve Litt
http://www.troubleshooters.com
http://www.velocityreviews.com/forums/(E-Mail Removed)


 
Reply With Quote
 
 
 
 
Johannes Friestad
Guest
Posts: n/a
 
      12-30-2005
eval

>eval("3+3")

6

jf
On 12/30/05, Steve Litt <(E-Mail Removed)> wrote:
> Hi all,
>
> What is the Ruby technique for turning strings into executable code?
>
> SteveT
>
> Steve Litt
> http://www.troubleshooters.com
> (E-Mail Removed)
>
>



--
Johannes Friestad
(E-Mail Removed)


 
Reply With Quote
 
 
 
 
James Britt
Guest
Posts: n/a
 
      12-30-2005
Steve Litt wrote:
> Hi all,
>
> What is the Ruby technique for turning strings into executable code?


There's eval:

eval( 'class Foo;def x; puts "x"; end;end' )

Foo.new.x

And its variants (instance_eval, class_eval)


James
--

http://www.ruby-doc.org - Ruby Help & Documentation
http://www.artima.com/rubycs/ - Ruby Code & Style: Writers wanted
http://www.rubystuff.com - The Ruby Store for Ruby Stuff
http://www.jamesbritt.com - Playing with Better Toys
http://www.30secondrule.com - Building Better Tools


 
Reply With Quote
 
Steve Litt
Guest
Posts: n/a
 
      12-30-2005
On Friday 30 December 2005 10:51 am, James Britt wrote:
> Steve Litt wrote:
> > Hi all,
> >
> > What is the Ruby technique for turning strings into executable code?

>
> There's eval:
>
> eval( 'class Foo;def x; puts "x"; end;end' )
>
> Foo.new.x
>
> And its variants (instance_eval, class_eval)
>
>
> James


Thanks James, and you to Johannes.

SteveT

Steve Litt
http://www.troubleshooters.com
(E-Mail Removed)


 
Reply With Quote
 
Erik Veenstra
Guest
Posts: n/a
 
      12-30-2005
> > What is the Ruby technique for turning strings into
> > executable code?

>
> Via one of the various forms of eval.


Uh, well, that's not the right answer. Eval evaluates
(=executes) a string. It doesn't turn a string into executable
code (=compile).

gegroet,
Erik V. - http://www.erikveen.dds.nl/

 
Reply With Quote
 
Steve Litt
Guest
Posts: n/a
 
      12-31-2005
On Saturday 31 December 2005 06:07 am, Erik Veenstra wrote:
> > > What is the Ruby technique for turning strings into
> > > executable code?

> >
> > Via one of the various forms of eval.

>
> Uh, well, that's not the right answer. Eval evaluates
> (=executes) a string. It doesn't turn a string into executable
> code (=compile).


When I first posed the question, what I really meant was turn it into Ruby
code (like eval does). Sorry for the confusion.

While we're on the subject, do you know of a way to turn a Ruby program into
an executable binary?

Thanks

SteveT

Steve Litt
http://www.troubleshooters.com
(E-Mail Removed)


 
Reply With Quote
 
Steve Litt
Guest
Posts: n/a
 
      12-31-2005
On Saturday 31 December 2005 06:07 am, Timothy Hunter wrote:
> Steve Litt wrote:
> > Hi all,
> >
> > What is the Ruby technique for turning strings into executable code?

>
> Via one of the various forms of eval. However, using eval on arbitrary
> strings is insecure, so generally it's considered bad form. There's even
> a slogan: "Eval is evil." The preferred technique is to build a solution
> using Ruby's dynamic programming facilities.


Where do I find out more about Ruby's dynamic programming facilities?

SteveT

Steve Litt
http://www.troubleshooters.com
(E-Mail Removed)


 
Reply With Quote
 
Erik Veenstra
Guest
Posts: n/a
 
      12-31-2005
> > While we're on the subject, do you know of a way to turn a
> > Ruby program into an executable binary?


If you want to distribute your Ruby application as a single
executable, including the Ruby interpreter and libraries, use
RubyScript2Exe:

http://www.erikveen.dds.nl/rubyscript2exe/index.html

(Yes, it's one of my own projects... But you asked me...)

gegroet,
Erik V. - http://www.erikveen.dds.nl/

 
Reply With Quote
 
James Britt
Guest
Posts: n/a
 
      12-31-2005
Christian Neukirchen wrote:
> Erik Veenstra <(E-Mail Removed)> writes:
>
>
>>>>What is the Ruby technique for turning strings into
>>>>executable code?
>>>
>>>Via one of the various forms of eval.

>>
>>Uh, well, that's not the right answer. Eval evaluates
>>(=executes) a string. It doesn't turn a string into executable
>>code (=compile).

>
>
> Wrap it in a lambda, then.


If I have a string in a file, would we say it was executable code? Or
does loading it into the Ruby interpreter make it executable code?


What are the differences among

require 'my-file-of-strings'


load 'my-file-of-strings'

and

eval( IO.read( 'my-file-of-strings' ) )



James
--

http://www.ruby-doc.org - Ruby Help & Documentation
http://www.artima.com/rubycs/ - Ruby Code & Style: Writers wanted
http://www.rubystuff.com - The Ruby Store for Ruby Stuff
http://www.jamesbritt.com - Playing with Better Toys
http://www.30secondrule.com - Building Better Tools


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Strings, Strings and Damned Strings Ben C Programming 14 06-24-2006 05:09 AM
Ruby/Python Continuations: Turning a block callback into a read()-method? Robert Python 0 02-12-2006 08:14 PM
Ruby/Python Continuations: Turning a block callback into a read()-method? Robert Ruby 0 02-12-2006 08:14 PM
Disassembling strings and turning them into function parameters mercuryprey@gmail.com Python 4 01-30-2005 06:55 PM
Turning Strings into Functions Freddy Python 3 09-26-2003 03:51 PM



Advertisments