[Nitro] Facets 1.8

transfire at gmail.com transfire at gmail.com
Mon Jan 29 17:45:24 EST 2007

On Jan 29, 12:25 pm, "George Moschovitis" 
<george.moschovi... at gmail.com> wrote:
> Dear devs,
> with Tom's help I have succesfully converted Nitro to use the latest
> annotations   from Facets 1.8 (and cleaned up the source code a bit in the
> process).
> I would like to ask Tom to release my minor changes to ann_attr.rb (mainly
> the ann_attr_callback, and the removed code) and the fixes in singular.rb as
> Facets 1.8.1 so I can push my repository to the public darcs repository.

okay. almost there. I see you removed serializable_attributes from 
facets ann_attr.rb. that's good b/c serialize annotation is specific 
to og, but the :class annotation is general, so I was thinking of 

  def classified_attributes
    attributes.find_all do |a|
      self.ann(a, :class)

also (and more important) i'm not liking the the callback.

  if Module.respond_to?(:ann_attr_callback)
    Module.ann_attr_callback(self, klass, args)

unless you see a reason it won't work, i think this would be better:

  if respond_to?(:attr_callback)
    attr_callback(self, args, harg)


  irb(main):012:0> class X
  irb(main):013:1>   def self.attr_callback(*a); p *a; end
  irb(main):014:1> end
  => nil
  irb(main):015:0> class X
  irb(main):016:1>   attr :x, String, :doc => "hello"
  irb(main):017:1> end
  {:class=>String, :doc=>"hello"}
  => [:x]

>From that you would just get the class via anno[:class] and instead of 
defining a univeral attr_callback as:

  class Module
    def self.attr_ann_callback

it would just be

  class Module
    def attr_callback

what do you think?


More information about the Nitro-general mailing list