From: Kent Sibilev Date: 2004-12-15T00:30:11+09:00 Subject: Re: Mixin questions By including a mixin module into a class you can add only instance methods unless you implement Module#append_features(or Module#included), if that's what you want to know. Cheers, Kent. On Dec 14, 2004, at 7:52 AM, Johan Nilsson wrote: > > "Robert Klemme" wrote in message > news:327uc2F3j9j3eU1@individual.net... >> >> "Johan Nilsson" schrieb im >> Newsbeitrag >> news:1103018684.0021a1444d2417eb0d9c6eddf9e60f0d@teranews... >>> Hi, >>> >>> some newbie questions: >>> >>> - How can/should I access a class constant from a mixin? The only >>> thing >> I've >>> managed to get working is "const_get("name of const")". >>> - Is it possible to access protected methods from mixins? I'm trying >>> to >>> create a mixin alike the following: >>> >>> --- >>> module StaticCreateMixin >>> def create_from(stuff) >>> obj = self.new >>> obj.my_stuff.!(stuff) >>> obj >>> end >>> end >>> >>> class Foo >>> extend StaticCreateMixin >>> >>> def my_stuff >>> @stuff >>> end >>> >>> protected :my_stuff >>> end >>> >>> f = Foo.static_create("some stuff") >> >> Your example misses something, does it? It's not completely clear to >> me >> what you want to do. Or did you misspell create_from as >> static_create? > > Oops. Yes, I'm a very bad speller (or it could be the > "extract-a-minimal-sample-from-actual-code-but-don't-bother-to-test- > it"-synd > rome). > > In english, I want to create an instance of Foo from within the mixin's > supplied class method. The first question still applies though. > > // Johan > >