Determine "owning" class?

class A
end

class C
   def initialize
      x = [A.new,A.new]
   end

   def template
      x
   end
end

Is it possible for an instance of A to determine the instance of C
that instantiated it?

The application I'm working on has a class named Template that
contains an array of Blocks. What I would like to do is have an
instance of Block reference back to Template's array so that it can
search for a particular sibling block in the array. Is the structure
built incorrectly? (It's too late to rebuild at this time.)

Thanks,
dvn

class A
  def initialize owner
    @owner=owner
  end
end

class C
  def initialize
    x = [A.new(self),A.new(self)]
  end

  def template
    x
  end
end

···

On Sun, 09 Mar 2008 08:58:06 -0700, dkmd_nielsen wrote:

class A
end

class C
   def initialize
      x = [A.new,A.new]
   end

   def template
      x
   end
end

Is it possible for an instance of A to determine the instance of C that
instantiated it?

The application I'm working on has a class named Template that contains
an array of Blocks. What I would like to do is have an instance of
Block reference back to Template's array so that it can search for a
particular sibling block in the array. Is the structure built
incorrectly? (It's too late to rebuild at this time.)

Thanks,
dvn

--
Ken (Chanoch) Bloom. PhD candidate. Linguistic Cognition Laboratory.
Department of Computer Science. Illinois Institute of Technology.
http://www.iit.edu/~kbloom1/

Where are the blocks created? If they are created inside an instance
of the Template class, then you should be able to get at it from the
block:

  class Template
    def initialize
      @blocks = [lambda{}, lambda{}]
    end
    attr_reader :blocks
  end

  t1 = Template.new
  b = t1.blocks.first
  t2 = eval("self", b)
  t1 == t2 # => true

Regards,
Pit

···

2008/3/9, dkmd_nielsen <donn@cmscms.com>:

The application I'm working on has a class named Template that
contains an array of Blocks. What I would like to do is have an
instance of Block reference back to Template's array so that it can
search for a particular sibling block in the array.

A block in his question isn't the same as a ruby syntactic block. I think
he means a block of content of a web page.

--Ken

···

On Mon, 10 Mar 2008 17:44:41 -0500, Pit Capitain wrote:

2008/3/9, dkmd_nielsen <donn@cmscms.com>:

The application I'm working on has a class named Template that
contains an array of Blocks. What I would like to do is have an
instance of Block reference back to Template's array so that it can
search for a particular sibling block in the array.

Where are the blocks created? If they are created inside an instance of
the Template class, then you should be able to get at it from the block:

  class Template
    def initialize
      @blocks = [lambda{}, lambda{}]
    end
    attr_reader :blocks
  end

  t1 = Template.new
  b = t1.blocks.first
  t2 = eval("self", b)
  t1 == t2 # => true

Regards,
Pit

--
Ken (Chanoch) Bloom. PhD candidate. Linguistic Cognition Laboratory.
Department of Computer Science. Illinois Institute of Technology.
http://www.iit.edu/~kbloom1/

Ken, how do you create (quoting the OP) "an array of Blocks" with
syntactic blocks?

Regards,
Pit

···

2008/3/11, Ken Bloom <kbloom@gmail.com>:

A block in his question isn't the same as a ruby syntactic block. I think
he means a block of content of a web page.

That's what you just did, creating an array of empty lambdas.

He defined (somewhere)
class Block
  ...
end

you instead, filled the array with objects of class Proc, which carry
bindings and you can identify self from a Proc. You can't do the same for
Block, the way I have defined it above.

--Ken

···

On Tue, 11 Mar 2008 13:56:49 -0500, Pit Capitain wrote:

2008/3/11, Ken Bloom <kbloom@gmail.com>:

A block in his question isn't the same as a ruby syntactic block. I
think
he means a block of content of a web page.

Ken, how do you create (quoting the OP) "an array of Blocks" with
syntactic blocks?

--
Ken (Chanoch) Bloom. PhD candidate. Linguistic Cognition Laboratory.
Department of Computer Science. Illinois Institute of Technology.
http://www.iit.edu/~kbloom1/

Ah, finally I see what you mean. Yes, you could be right that the OP
was doing something like this. Sorry, I had problems to dissociate the
word "block" from Ruby's blocks here on ruby-talk...

Thanks,
Pit

···

2008/3/12, Ken Bloom <kbloom@gmail.com>:

He defined (somewhere)
class Block
  ...
end