class Class

Public Instance Methods

cattr(name = nil, value = :_nil, &block) click to toggle source
# File lib/lib/base.rb, line 2
def cattr name = nil, value = :_nil, &block
  return CattrProxy.new(self) unless name

  if value != :_nil || block
    define_singleton_method(name) do |arg = :_nil|
      if arg == :_nil
        CattrProxy.new(self).send(name)
      else
        CattrProxy.new(self).send('%s=' % name, arg)
      end
    end

    if value != :_nil
      CattrProxy.new(self).send('%s=' % name, value)
    elsif block
      CattrProxy.new(self).send(name, value, &block)
    end
  else
    CattrProxy.new(self).send('%s=' % name, nil)
  end
end