Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.ruby > #3005
| From | Robert Klemme <shortcutter@googlemail.com> |
|---|---|
| Newsgroups | comp.lang.ruby |
| Subject | Re: looking for an "inversion" pattern |
| Date | 2011-04-16 15:29 +0200 |
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar | Unroll 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