|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
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 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 -- Ken (Chanoch) Bloom. PhD candidate. Linguistic Cognition Laboratory. Department of Computer Science. Illinois Institute of Technology. http://www.iit.edu/~kbloom1/ |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
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 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 -- Ken (Chanoch) Bloom. PhD candidate. Linguistic Cognition Laboratory. Department of Computer Science. Illinois Institute of Technology. http://www.iit.edu/~kbloom1/ |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
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? Regards, Pit |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
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? 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 -- Ken (Chanoch) Bloom. PhD candidate. Linguistic Cognition Laboratory. Department of Computer Science. Illinois Institute of Technology. http://www.iit.edu/~kbloom1/ |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
2008/3/12, Ken Bloom <kbloom@gmail.com>:
> He defined (somewhere) > class Block > ... > end 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 |
|
![]() |
| Outils de la discussion | |
|
|