[#14464] who uses Python or Ruby, and for what? — ellard2@...01.fas.harvard.edu (-11,3-3562,3-3076)

A while ago I posted a request for people to share their experiences

12 messages 2001/05/01

[#14555] Ruby as a Mac OS/X scripting language — Dave Thomas <Dave@...>

10 messages 2001/05/02

[#14557] Arggg Bitten by the block var scope feature!!! — Wayne Scott <wscott@...>

13 messages 2001/05/02

[#14598] Re: Arggg Bitten by the block var scope feature!!! — "Conrad Schneiker" <schneik@...>

# On Thu, 3 May 2001, Wayne Scott wrote:

9 messages 2001/05/03

[#14636] Yet another "About private methods" question — Eric Jacoboni <jacoboni@...2.fr>

I'm still trying to figure out the semantics of private methods in Ruby.

39 messages 2001/05/04
[#14656] Re: Yet another "About private methods" question — Dave Thomas <Dave@...> 2001/05/04

Eric Jacoboni <jaco@teaser.fr> writes:

[#14666] Ruby and Web Applications — "Chris Montgomery" <monty@...> 2001/05/04

Greetings from a newbie,

[#14772] Re: Ruby and Web Applications — Jim Freeze <jim@...> 2001/05/07

On Sat, 5 May 2001, Chris Montgomery wrote:

[#14710] Why's Ruby so slow in this case? — Stefan Matthias Aust <sma@3plus4.de>

Sure, Ruby, being interpreted, is slower than a compiled language.

12 messages 2001/05/05

[#14881] Class/Module Information — "John Kaurin" <jkaurin@...>

It is possible to modify the following code to produce

18 messages 2001/05/09

[#15034] Re: calling .inspect on array/hash causes core dump — ts <decoux@...>

>>>>> "A" == Andreas Riedl <viisi@chello.at> writes:

15 messages 2001/05/12

[#15198] Re: Q: GUI framework with direct drawing ca pabilities? — Steve Tuckner <SAT@...>

Would it be a good idea to develop a pure Ruby GUI framework built on top of

13 messages 2001/05/15

[#15234] Pluggable sorting - How would you do it? — "Hal E. Fulton" <hal9000@...>

Hello all,

16 messages 2001/05/16

[#15549] ColdFusion for Ruby — "Michael Dinowitz" <mdinowit@...2000.com>

I don't currently use Ruby. To tell the truth, I have no real reason to. I'd

12 messages 2001/05/22

[#15569] I like ruby-chan ... — Rob Armstrong <rob@...>

Ruby is more human(e) than Python. We already have too many animals :-).

15 messages 2001/05/23

[#15601] How to avoid spelling mistakes of variable names — ndrochak@... (Nick Drochak)

Since Ruby does not require a variable to be declared, do people find

13 messages 2001/05/23

[#15734] java based interpreter and regexes — "Wayne Blair" <wayne.blair@...>

I have been thinking about the java based ruby interpreter project, and I

48 messages 2001/05/25

[#15804] is it possible to dynamically coerce objects types in Ruby? — mirian@... (Mirian Crzig Lennox)

Greetings to all. I am a newcomer to Ruby and I am exploring the

13 messages 2001/05/27
[#15807] Re: is it possible to dynamically coerce objects types in Ruby? — matz@... (Yukihiro Matsumoto) 2001/05/27

Hi,

[#15863] Experimental "in" operator for collections — Stefan Matthias Aust <sma@3plus4.de>

There's one thing where I prefer Python over Ruby. Testing whether an

13 messages 2001/05/28

[#15925] Re: Block arguments vs method arguments — ts <decoux@...>

>>>>> "M" == Mike <mike@lepton.fr> writes:

43 messages 2001/05/29
[#16070] Re: Block arguments vs method arguments — "Hal E. Fulton" <hal9000@...> 2001/05/31

----- Original Message -----

[#16081] Re: Block arguments vs method arguments — Sean Russell <ser@...> 2001/05/31

On Thu, May 31, 2001 at 11:53:17AM +0900, Hal E. Fulton wrote:

[#16088] Re: Block arguments vs method arguments — Dan Moniz <dnm@...> 2001/05/31

At 11:01 PM 5/31/2001 +0900, Sean Russell wrote:

[#15954] new keyword idea: tryreturn, tryturn or done — Juha Pohjalainen <voidjump@...>

Hello everyone!

12 messages 2001/05/29

[ruby-talk:15554] Re: ColdFusion for Ruby

From: "Wayne Blair" <wayne.blair@...>
Date: 2001-05-22 20:40:09 UTC
List: ruby-talk #15554
Hi Michael,

Here is a quick and dirty method to create ColdFusion type tags in an
eruby-like implementation.  Hope you can follow it - I've left some
hopefully obvious pseudocode methods undefined.  Also, some of the
mechanisms like variable storage I've given a really trivial implementation
of.  You would obviously design a session mechanism.

1)  Use <% %> to wrap a tag.  Put only one tag inside each <%...%> pair.

2)  Treat Cold fusion like tags as XMLRPCs of sorts.

3)  Create an command pattern interface for a generic ColdFusionProc -
something like
def execute(requestObject, responseObject, variableStorage)
where requestObject gives all the information for the request,
responseObject that is an output stream, variableStorage allows you to
store/retrieve variables for this page.

4)  For each Cold Fusion tag, create a separate class that implements
ColdFusionFunction and implement it.  Also, create a PlainText class that
implements Cold Fusion Function and implements it.  Have each class act as
its own class factory.

5)  In your ColdFusion embedded ruby, precompile a page like this:
cold = ColdFusionParser.new
cold.parse <<-INP
Top of web page
<%<CFTAG attr1="55" attr2="hack">
Some data
</CFTAG>
%>
INP

class ColdFusionParser
  @@functionFactories = hash.new
  # load with a factory for each function here or in helper class
  @@functionClasses ["CFTAG"] = CFTAG
def initialize
  @requestObject = #design a class to hold request parameters
  @responseObject = "" # should be a stream you can write to
  def responseObject.write(str)
    self << str
  end
  @variableStorage = Hash.new
  @xmlParser = # new xmlParser NQXML for example
end

def compile(text)
  compiledFunctions = Array.new   #(use a list or tree typically)
  tokens = tokenize(text)
  tokens.each begin |token|
    newFunction = nil
    if isWrappedInPercentTags(token)
       DomElement xml = xmlParser.parse(stripOuterTags(token) )
       newFunction = getColdFusionFunction(xml)
    else
      newFunction = PlainText.new(token)
    end
    compiledFunctions.push newFunction
  end
  return compiledFunctions
end
private :compile

def parse(text)
  compiledFunctions = compile(text)
  compiledFunctions.each do |function|
     function.evaluate(@requestObject, @responseObject, @variableStorage)
  end
end

def tokenize(text)
  tokens = Array.new
  # tokenize text so you now have (from the example
  # token1 -> Top of web page
  # token2 -> <%<CFTAG ...%>
  # token3 -> Bottom of web page
  return tokens
end
private :tokenize

def getColdFusionFunction(xmlElement)

end

module ColdFusionFunction
  def execute(requestObject, responseObject, variableStorage)
  end

  def initialize(xmlElement)
  end
end

class CFTAG
  include ColdFusionProc

  def initialize (xmlElement)
    # set up instance variables, etc.
  end
  def execute(requestObject, responseObject, variableStorage)
    # do things like
      variableStorage['qQueryReturn'] =
  end
end




In This Thread