Sean Cribbs wrote: > I've been doing this via a plugin, as follows: > > class Behavior::Base > define_tags do > tag "slicktabs" do |tag| > slicktab = SlickTabs.new(tag) > slicktab.output > end > ...other tags... > end > end > > class SlickTabs > ... > end > > > So essentially, Behavior::Base is available whether there's a behavior > assigned or not? Or am I misunderstanding?
I just wrote a whole screed about reopening classes in Ruby, then realized you were asking if Behavior::Base is always available -to the page-. Oops. From experience, yes - you don't need a behavior defined to use the tags you call from Behavior::Base. I'm not sure entirely why; John can shed some light, I'm sure. I think it's because Behavior::Base acts as kind of an abstract base class - it sets up a bunch of helpers for defining tags, but (normally) doesn't call any of them itself. Any behaviors you write would descend from it and call them. And Page seems to delegate to Behavior no matter what, so if no other behavior is defined, you're still getting Behavior::Base, which normally does nothing. Now that you've reopened it, you're defining some tags as well - you've modified the "nil" behavior. I'm very muddy on this advanced_delegation stuff, so my explanation of WHY it works may be totally wrong. But it works. Just like a cargo cult. Jay > ------------------------------------------------------------------------ > > _______________________________________________ > Radiant mailing list > Radiant@lists.radiantcms.org > http://lists.radiantcms.org/mailman/listinfo/radiant _______________________________________________ Radiant mailing list Radiant@lists.radiantcms.org http://lists.radiantcms.org/mailman/listinfo/radiant