[#11822] RCR: Input XML support in the base Ruby — Dave Thomas <Dave@...>

15 messages 2001/03/01

[#11960] Not Ruby, for me, for the moment at least — "Michael Kreuzer" <mkreuzer@... (nospam)>

I wrote on this newsgroup last weekend about how I was considering using

11 messages 2001/03/04

[#12023] French RUG ? — "Jerome" <jeromg@...>

Hi fellow rubyers,

16 messages 2001/03/05

[#12103] disassembling and reassembling a hash — raja@... (Raja S.)

Given a hash, h1, will the following always hold?

20 messages 2001/03/06

[#12204] FEATURE REQUEST: 'my' local variables — Leo Razoumov <see_signature@127.0.0.1>

Ruby is, indeed, a very well designed language.

64 messages 2001/03/07
[#12250] Re: FEATURE REQUEST: 'my' local variables — Leo Razoumov <see_signature@127.0.0.1> 2001/03/07

>>>>> "GK" == GOTO Kentaro <gotoken@math.sci.hokudai.ac.jp> writes:

[#12284] Re: FEATURE REQUEST: 'my' local variables — gotoken@... (GOTO Kentaro) 2001/03/08

In message "[ruby-talk:12250] Re: FEATURE REQUEST: 'my' local variables"

[#12289] Re: FEATURE REQUEST: 'my' local variables — matz@... (Yukihiro Matsumoto) 2001/03/08

Hi,

[#12452] Re: FEATURE REQUEST: 'my' local variables — gotoken@... (GOTO Kentaro) 2001/03/12

In message "[ruby-talk:12289] Re: FEATURE REQUEST: 'my' local variables"

[#12553] Re: FEATURE REQUEST: 'my' local variables — Dave Thomas <Dave@...> 2001/03/13

matz@zetabits.com (Yukihiro Matsumoto) writes:

[#12329] Math package — Mathieu Bouchard <matju@...>

18 messages 2001/03/09

[#12330] Haskell goodies, RCR and challenge — Robert Feldt <feldt@...>

Hi,

19 messages 2001/03/09
[#12374] Re: Haskell goodies, RCR and challenge — matz@... (Yukihiro Matsumoto) 2001/03/10

Hi,

[#12349] Can Ruby-GTK display Gif Png or Jpeg files? — Phlip <phlip_cpp@...>

Ruby-san:

20 messages 2001/03/09

[#12444] class variables — Max Ischenko <max@...>

14 messages 2001/03/12

[#12606] Order, chaos, and change requests :) — Dave Thomas <Dave@...>

17 messages 2001/03/14

[#12635] email address regexp — "David Fung" <dfung@...>

i would like to locate probable email addresses in a bunch of text files,

12 messages 2001/03/14

[#12646] police warns you -- Perl is dangerous!! — Leo Razoumov <see_signature@127.0.0.1>

I just read this story on Slashdot

14 messages 2001/03/14
[#12651] Re: police warns you -- Perl is dangerous!! — pete@... (Pete Kernan) 2001/03/14

On 14 Mar 2001 11:46:35 -0800, Leo Razoumov <see_signature@127.0.0.1> wrote:

[#12691] Re: police warns you -- Perl is dangerous!! — "W. Kent Starr" <elderburn@...> 2001/03/15

On Wednesday 14 March 2001 15:40, Pete Kernan wrote:

[#12709] [OFFTOPIC] Re: police warns you -- Perl is dangerous!! — Stephen White <spwhite@...> 2001/03/16

On Fri, 16 Mar 2001, W. Kent Starr wrote:

[#12655] Re: FEATURE REQUEST: 'my' local variables — "Benjamin J. Tilly" <ben_tilly@...>

>===== Original Message From Leo Razoumov <see_signature@127.0.0.1> =====

18 messages 2001/03/14

[#12706] Library packaging — "Nathaniel Talbott" <ntalbott@...>

I have a project that I'm working on that needs to live two different lives,

30 messages 2001/03/16

[#12840] Looking for a decent compression scheme — Dave Thomas <Dave@...>

14 messages 2001/03/19

[#12895] differences between range and array — "Doug Edmunds" <dae_alt3@...>

This code comes from the online code examples for

16 messages 2001/03/20
[#12896] Re: differences between range and array — "Hee-Sob Park" <phasis@...> 2001/03/20

[#12899] Re: differences between range and array — Jim Freeze <jim@...> 2001/03/20

On Tue, 20 Mar 2001, Hee-Sob Park wrote:

[#12960] TextBox ListBox — Ron Jeffries <ronjeffries@...>

Attached is a little Spike that Chet and I are doing. It is a

13 messages 2001/03/20

[#12991] [ANN] Lapidary 0.2.0 — "Nathaniel Talbott" <ntalbott@...>

Well, here's my first major contribution to the Ruby world: Lapidary. It's a

16 messages 2001/03/20

[#13028] mkmf question — Luigi Ballabio <luigi.ballabio@...>

15 messages 2001/03/21

[#13185] Reading a file backwards — "Daniel Berger" <djberg96@...>

Hi all,

21 messages 2001/03/25
[#13197] Re: Reading a file backwards — "Daniel Berger" <djberg96@...> 2001/03/25

> Hi Dan,

[#13203] Re: Reading a file backwards — Mathieu Bouchard <matju@...> 2001/03/25

On Sun, 25 Mar 2001, Daniel Berger wrote:

[#13210] Re: Reading a file backwards — "Daniel Berger" <djberg96@...> 2001/03/25

"Mathieu Bouchard" <matju@sympatico.ca> wrote in message

[#13374] Passing an array to `exec'? — Lloyd Zusman <ljz@...>

I'd like to do the following:

15 messages 2001/03/31

[#13397] Multidimensional arrays and hashes? — Lloyd Zusman <ljz@...>

Is it possible in ruby to make use of constructs that correspond to

14 messages 2001/03/31

[ruby-talk:12989] Re: TextBox ListBox (Access to @vars)

From: Ron Jeffries <ronjeffries@...>
Date: 2001-03-20 23:10:02 UTC
List: ruby-talk #12989
OK, here's what's confusing us now. we have code like what's included
at the end here. (sorry it's so big, I'm not sure what to clip to
leave it still working):

Basically we are building a hashview object that when created, creates
a window upon initialize. The window has a listbox and a textbox as
before. When you click a key, the value displays. You can define a new
value or redifine an old one by typing the association in the text
window and typing Control-s. For example 
	x => this is a new value for x

So our object wants to have the hash (we call it a dictionary because
we are old-fashioned) as an instance variable. (We'll be opening the
view on a TopLevel or something in the future, so there can be more
than one.)

Now when you add an item, we have to refresh the list box from the
keys of the dictionary. We have set up a general bind of Control-s, so
that code needs access to the listbox. 

We originally had the listbox as a local variable in the setup of the
frame (copying from one of the demos), and learned that we had to
define the local (keyListbox) as nil OUTSIDE the proc, to get access
to it later on, in the code that inserts hash keys into the list box.

We wanted to implement the refreshList method on HashBrowserView, so
we wanted to change the local keyListbox to an instance variable. The
obvious change, replacing keyListbox with @keyListbox, doesn't work.
We are guessing that the @variables inside the proc are defining
themselves into the proc.

So the only way we could think of to get the variable set was to write
a setter for the instance variable and send it:
	defineWidget(keyListbox)

As I think about it now, we could probably put an explicit scope on
the variable, ala
	HashBrowserView::@keyListbox
and just use that everywhere. I'll try that if I can figure out the
syntax ...

Are we on the right track here? Is it true that @variable inside a
proc defines an instance variable on the proc instance? Is there a
better, cleaner way to do what we're trying to do?

Thanks!

Ron

==================================
require 'tk'
require 'tkencoding'
require 'tkafter'

class HashBrowserView
    def initialize(aDictionary)
        @dictionary = aDictionary
        @methodListWidget = nil
    
        hashBrowserView = TkRoot.new {|w|
          title("Dictionary Browser")
          #positionWindow(w)
        }
        hashBrowserView.bind("Control-s", proc {save})
        keyListbox = nil
        TkFrame.new(hashBrowserView, 'borderwidth'=>10) {|w|
          s = TkScrollbar.new(w)
          keyListbox = TkListbox.new(w) {
            setgrid 1
            width  10
            height 12
            selectmode 'single'
            yscrollcommand proc{|first,last| s.set first,last}
          }
          s.command(proc{|*args| keyListbox.yview *args})
          s.pack('side'=>'right', 'fill'=>'y')
          keyListbox.pack('side'=>'left', 'expand'=>1, 'fill'=>'both')
        }.pack('side'=>'top', 'expand'=>'yes', 'fill'=>'y')

          @dictionary.keys.each { |key|
            keyListbox.insert('end', key) }

         @textBox = TkText.new(hashBrowserView, 'height'=>10)
         @textBox.pack

        keyListbox.bind('ButtonRelease-1', proc{
            sel = keyListbox.curselection
            selection = keyListbox.get(sel)
            @textBox.delete('1.0','end')
            @textBox.insert('1.0', @dictionary[selection])})
        defineWidget(keyListbox)
    end
    def defineWidget(aWidget)
        @methodListWidget = aWidget
    end
    def save
        value = @textBox.get('1.0','end')
        value =~ /([\w+]) +=> +(.+)/
        @dictionary[$1] = $2
        refreshList
    end
    def refreshList
        @dictionary.keys.each { |key|
            @methodListWidget.insert('end', key) }
    end
end 

dictionary = {'a'=>'this is the text for a',
    'b'=>'and here is good old b' }

hashBrowser = HashBrowserView.new(dictionary)
Tk.mainloop

Ronald E Jeffries
http://www.XProgramming.com
http://www.objectmentor.com

In This Thread