Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.ruby > #3005

Re: looking for an "inversion" pattern

Path csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.albasani.net!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From Robert Klemme <shortcutter@googlemail.com>
Newsgroups comp.lang.ruby
Subject Re: looking for an "inversion" pattern
Date Sat, 16 Apr 2011 15:29:32 +0200
Lines 60
Message-ID <90tjukFgaiU1@mid.individual.net> (permalink)
References <d0c168880ff1c65dd84fc6d70778ddb2@ruby-forum.com> <7c9986702d2a6acd3748e6cca228d8da@ruby-forum.com> <BANLkTikFjzEuhMevuXJ6ZGSHA6h=MNTnjA@mail.gmail.com> <9781d8dfa4b6039362d09f98e7b7036e@ruby-forum.com>
Mime-Version 1.0
Content-Type text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding 7bit
X-Trace individual.net SOzgfITottFf1kiBYlVRmwAo35lCobGa6bH/HUSLNyaarveIk=
Cancel-Lock sha1:qc0mzIfN0Gm5jqpVjIkTF7+jLZc=
User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.15) Gecko/20110303 Lightning/1.0b2 Thunderbird/3.1.9
In-Reply-To <9781d8dfa4b6039362d09f98e7b7036e@ruby-forum.com>
X-Antivirus avast! (VPS 110415-1, 15.04.2011), Outbound message
X-Antivirus-Status Clean
Xref x330-a1.tempe.blueboxinc.net comp.lang.ruby:3005

Show key headers only | View raw


On 15.04.2011 17:40, Fearless Fool wrote:
> Thanks everybody!!

You're welcome!

>> I am sorry, I still do not understand your motivation to have a class
>> method which receives an instance as first argument.
>
> My motivation is that I was writing a lot of code like this:
>
> module HasXattr
>      def xattr_reference(key);  Xattr.xattr_reference(self, key); end
>      def xattr_store(key, value); Xattr.xattr_store(self, key, value);
> end
>      def xattr_has_key?(key); Xattr.xattr_has_key?(self, key); end
>      def xattr_delete(key); Xattr.xattr_delete(self, key); end
>      ...
> end
>
> .. and I thought to myself: this is Ruby.  There must be a better way.
> I guess I should have shown this concrete example earlier in the thread.

With my code you could do

module HasXattr
   def xattr # foo in your lingo
     proxy(Xattr)
   end
end

or directly use it in your class

module HasXattr
   def xattr # foo in your lingo
     proxy(Xattr)
   end
end

Then you can do

obj.xattr.has_key? "k"

or

obj.xattr.tap |x|
   x.store "k", "v" unless x.has_key?
end

Btw, what is Xattr?  Where does it come from and what does it do?  From 
the looks it seems to be some external storage for attributes associated 
with your instance which you do not want to store in the instance itself 
(for whatever reasons).  What do you need that for?

Kind regards

	robert

-- 
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

Back to comp.lang.ruby | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

looking for an "inversion" pattern Fearless Fool <r@alum.mit.edu> - 2011-04-15 00:16 -0500
  Re: looking for an "inversion" pattern Fearless Fool <r@alum.mit.edu> - 2011-04-15 01:27 -0500
    Re: looking for an "inversion" pattern Robert Klemme <shortcutter@googlemail.com> - 2011-04-15 04:24 -0500
      Re: looking for an "inversion" pattern Fearless Fool <r@alum.mit.edu> - 2011-04-15 10:40 -0500
        Re: looking for an "inversion" pattern Robert Klemme <shortcutter@googlemail.com> - 2011-04-16 15:29 +0200
  Re: looking for an "inversion" pattern Kevin Mahler <kevin.mahler@yahoo.com> - 2011-04-15 02:14 -0500
    Re: looking for an "inversion" pattern Fearless Fool <r@alum.mit.edu> - 2011-04-15 02:43 -0500
      Re: looking for an "inversion" pattern Kevin Mahler <kevin.mahler@yahoo.com> - 2011-04-15 08:44 -0500
    Re: looking for an "inversion" pattern 7stud -- <bbxx789_05ss@yahoo.com> - 2011-04-16 13:20 -0500
      Re: looking for an "inversion" pattern 7stud -- <bbxx789_05ss@yahoo.com> - 2011-04-16 13:43 -0500
  Re: looking for an "inversion" pattern Jesús Gabriel y Galán <jgabrielygalan@gmail.com> - 2011-04-15 02:45 -0500
  Re: looking for an "inversion" pattern Brian Candler <b.candler@pobox.com> - 2011-04-16 16:14 -0500
    Re: looking for an "inversion" pattern Robert Klemme <shortcutter@googlemail.com> - 2011-04-16 23:40 +0200

csiph-web