[#13775] Problems with racc rule definitions — Michael Neumann <neumann@...>

15 messages 2001/04/17
[#13795] Re: Problems with racc rule definitions — Minero Aoki <aamine@...> 2001/04/18

Hi,

[#13940] From Guido, with love... — Dave Thomas <Dave@...>

52 messages 2001/04/20

[#13953] regexp — James Ponder <james@...>

Hi, I'm new to ruby and am coming from a perl background - therefore I

19 messages 2001/04/21

[#14033] Distributed Ruby and heterogeneous networks — harryo@... (Harry Ohlsen)

I wrote my first small distributed application yesterday and it worked

15 messages 2001/04/22

[#14040] RCR: getClassFromString method — ptkwt@...1.aracnet.com (Phil Tomson)

It would be nice to have a function that returns a class type given a

20 messages 2001/04/22

[#14130] Re: Ruby mascot proposal — "Conrad Schneiker" <schneik@...>

Guy N. Hurst wrote:

21 messages 2001/04/24
[#14148] Re: Ruby mascot proposal — Stephen White <spwhite@...> 2001/04/24

On Tue, 24 Apr 2001, Conrad Schneiker wrote:

[#14188] Re: Ruby mascot proposal — matz@... (Yukihiro Matsumoto) 2001/04/25

Hi,

[#14193] Re: Ruby mascot proposal — "W. Kent Starr" <elderburn@...> 2001/04/25

On Tuesday 24 April 2001 23:02, Yukihiro Matsumoto wrote:

[#14138] Re: python on the smalltalk VM — Conrad Schneiker <schneik@...>

FYI: Thought this might be of interest to the JRuby and Ruby/GUI folks.

27 messages 2001/04/24
[#14153] Re: python on the smalltalk VM — Andrew Kuchling <akuchlin@...> 2001/04/24

Conrad Schneiker <schneik@austin.ibm.com> writes:

[#14154] array#flatten! question — Jim Freeze <jim@...> 2001/04/24

Hello.

[#14159] Can I insert into an array — Jim Freeze <jim@...> 2001/04/24

Ok, this may be a dumb question, but, is it possible to insert into an

[#14162] Re: Can I insert into an array — Dave Thomas <Dave@...> 2001/04/24

Jim Freeze <jim@freeze.org> writes:

[#14289] RCR: Array#insert — Shugo Maeda <shugo@...> 2001/04/27

At Wed, 25 Apr 2001 01:28:36 +0900,

[#14221] An or in an if. — Tim Pettman <tjp@...>

Hi there,

18 messages 2001/04/25

[#14267] Re: Ruby mascot proposal — "Conrad Schneiker" <schneik@...>

Danny van Bruggen,

16 messages 2001/04/26

[#14452] How to do it the Ruby-way 3 — Stefan Matthias Aust <sma@3plus4.de>

First a question: Why is

21 messages 2001/04/30

[ruby-talk:14143] Re: OO

From: hipster <hipster@...4all.nl>
Date: 2001-04-24 07:23:36 UTC
List: ruby-talk #14143
On Tue, 24 Apr 2001  08:16:33 +0900, chad fowler wrote:
[snip]
> Again, this is all dependent on what the "Options"
> are, but with your example, you've provided a little
> window into what you're trying to do.  My answer for
> the "debug=1" example would be that each class
> shouldn't inherently know what debugging behaviour is.
>  I would centralize the debugging in a class that can
> decide independently how to deal with things that ask
> to be debugged.  I'm guessing that "debug=1" will
> cause level 1 verbosity (however you have that
> defined) logging in your application to happen.  In
> that case, I would probably define a logger object
> that could handle both the implementation of what it
> means to actually log something and the decision of
> *when* to log something (i.e. "if(debug=1)
> logDebugMessage(myMessage)").

I'd suggest Aspect Oriented Programming for this. Check out aspectr in
the RAA; it makes things like logging, debugging, timing, pre- &
postconditions, synchronisation etc. a breeze, while leaving the
target class you add a certain aspect to completely untouched.

Simple logging example:

###
require "aspectr"
include AspectR

class Logger < Aspect
	def wrap(target, *methods)
		super(target, :enter, :exit, *methods)
	end

	def enter(method, object, *args)
		puts "enter #{object.class}::#{method}"
	end

	def exit(method, object, *args)
		puts "exit #{object.class}::#{method}"
	end
end

class Foobar
	def method
		puts "aap noot"
	end
end

logger = Logger.new
logger.wrap(Foobar, :method)	# wrap one or more methods

Foobar.new.method		#=> enter Foobar::method
				#=> aap noot
				#=> exit Foobar::method
###

Nifty!

	Michel

In This Thread

Prev Next