2010-02-03 3 views
1

Вытягивание моих волос, пытаясь выяснить, где class_inheritable_reader задокументирован в Rails.Почему class_inheritable_reader в ActiveSupport не документирован?

Поиск Google показал свое существование, и ищу в самом драгоценном камне я нашел метод:

def class_inheritable_reader(*syms) 
    syms.each do |sym| 
    next if sym.is_a?(Hash) 
    class_eval <<-EOS 
     def self.#{sym}      # def self.before_add_for_comments 
     read_inheritable_attribute(:#{sym}) #   read_inheritable_attribute(:before_add_for_comments) 
     end         # end 
              # 
     def #{sym}        # def before_add_for_comments 
     self.class.#{sym}     # self.class.before_add_for_comments 
     end         # end 
    EOS 
    end 
end 
.... 

Но глядя на rdocs как для ActiveSupport И от «грабель документа: рельсы» вы найдете не документация ... как получилось?

ответ

1

Если открыть папку, в которой драгоценные камни установлены на вашем компьютере, вы можете перейти к:

ActiveSupport/Lib/active_support/core_ext/класс/inheritable_attributes.rb

видеть где класс фактически реализован. Кроме того, вы можете увидеть latest version of the file в репозитории Rails на GitHub.

В этом файле имеется документация по уровню (см. Ниже), но нет документации по уровню метода, поэтому вы, вероятно, ничего не нашли.

# Allows attributes to be shared within an inheritance hierarchy, but where each descendant gets a copy of 
# their parents' attributes, instead of just a pointer to the same. This means that the child can add elements 
# to, for example, an array without those additions being shared with either their parent, siblings, or 
# children, which is unlike the regular class-level attributes that are shared across the entire hierarchy. 
0

I found it on APIdock. По-видимому, это расширение класса. Нет документации, но вы можете увидеть ее реализацию.

+0

Hi TomToday ... спасибо. К сожалению, это именно тот сайт, на котором я приземлился, когда искал Google. Я надеялся получить дополнительную официальную документацию. Я уточню свой вопрос с более подробной информацией и вопросом «бонуса», так как на данный момент я нашел удовлетворительный ответ. – btelles

Смежные вопросы