I have probably answered my own question:
I'm still a newbie, but am pleased to return
results ->
; == consider the following code: the two objects work
; independently. They use the same named methods
; op, prn, and close
; When I named those methods open, print,and close,
; I got stack overflows, which suggests to me
; that rebol doesn't like me overridding their
; own system functions.
; I'm happy with the result. Less typing eh!
REBOL
[
Title: "object"
Date: 011-Apr-2000
File: %object.r
Purpose: {testing rebol objects}
]
;=== make first object
object-one: make object!
[
op: func [] [fp: open/new/write %objone.txt]
prn: func [value]
[append fp value]
cls: func[] [close fp]
]
;=== make first object
object-two: make object!
[
op: func [] [fp: open/new/write %objtwo.txt]
prn: func [value]
[append fp value]
cls: func[] [close fp]
]
;=== test first object
object-one/op
object-one/prn "testing object-one once more"
object-one/cls
;=== test second object
object-two/op
object-two/prn "testing object-two once more"
object-two/cls
At 05:10 PM 4/11/00 -0800, you wrote:
>Hi Michael -
>At 12:42 PM 4/11/00 -0700, you wrote:
>>I'm currently defining a 'print element of an object as a function. I'm
>>assuming that the REBOL definition of 'print will be hidden in the
>>definition of this object (and definitions of functions local to the
>object)
>Actually .
>print would write to a port, which could be standard
>output OR a physical file. The port would be defined
>as a member of the object as well.
>
>let's call this content-object ; will build virtual
>; pages OR could be used to build a physical web page
>; let me know what you think of the following:
>; thanks for your interest :>)
>; tim
>content-object: make object!
>[
> write_to_file: func []
> [
>; is this being run from a server?
>either equal? system/options/cgi/server-name none
>[return true]
>[{else}return false]
> ]
> init_output: func[fname[string!] /local fpl]
> [
>either write_to_file ; no server so open a write port
>; to fname
>[
> file_name: make file! fname
> fp1: open/new/write file_name
>]
>; yup, we're on the server so keep writing to stdout
>[{else} fp: system/ports/output]
>return fpl
> ]
> ; what the hay!! We can call this anything, but
> ; print would be great if it didn't screw up implicit
> ; output to stdout for the "original print"
> fp: init_output "hello.htm"
> print: func [fp[port!] value]
>[append fp value]
>]
>; If this process works with out conflict, then I would
>; create a debug object which would write to a file that
>; would be created every time the application runs
>; and an errorlog object that would be appended every
>; time the application ran, given an error or warning
>; condition appeared. Standard parts of the my C/C++/CGI
>; toolkit and expected by sysops that my cgi programs
>; run on. They could all have a print element (method)
>; OR I could call it something else.
>>- which is ok. Outside of the element 'print, the REBOL definition works
>>just fine. Following is the relevant piece of my object:
>>
>>player-def: make object! [
>> name: none
>> connection: none
>> ; METHODS
>> ; - - - - - - - - - - - - - - - - - - - - - -
>> print: function [
>> "Print a message to this player, with trailing new-line"
>> msg [string! block!]
>> ][new-msg][
>> ; Cleanup the message suitable for telnet display
>> new-msg: player-format-print msg
>> append new-msg new-line
>> append connection new-msg
>> ]
>> ; - - - - - - - - - - - - - - - - - - - - - -
>> prin: function [
>> "Print a message to this player"
>> msg [string! block!]
>> ][new-msg][
>> ; Cleanup the message suitable for telnet display
>> new-msg: player-format-print msg
>> append connection new-msg
>> ]
>>]
>>
>>- Michael Jelinek
>>
>>-Original Message-
>>From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
>>Sent: Tuesday, April 11, 2000 11:32 AM
>>To: [EMAIL PROTECTED]
>>Subject: [REBOL] [REBOL] Redefining functions with objects
>>
>>
>>I'm thinking of developing a class.
>>Let's call it
>>
>>tims-object
>>
>>Suppose I write a function for this
>>class and I call it
>>
>>print
>>
>>Will
>>tims-object/print
>>redefine rebol's own print?
>>
>>I don't really want to do this, so
>>I would welcome comments on this.
>>
>>thanks
>>tim
>>
>>
>>
>
>