Aşağıdaki gibi bir sınıfım varsa, ataların bir sınıfla bir modül arasında ne zaman olduğunu nasıl anlarım?Ata'nın Ruby'de bir Sınıf mı yoksa Modül mi olduğunu anlatma yöntemi?
Böyle bir şey yapabilmek istiyorum
ActiveRecord::Base.send(:include, SomeLibrary)
class Group < ActiveRecord::Base
include SomeLibrary::Core
end
class SubGroup < Group
end
ancestor_names = SubGroup.ancestors.map(&:name)
puts ancestor_names.inspect
#=> [
"SubGroup", "SomeLibrary::Core::InstanceMethods", "SomeLibrary::Core",
"Group", "ActiveRecord::Base", "SomeLibrary", "ActiveRecord::Aggregations",
"ActiveRecord::Transactions", "ActiveRecord::Reflection", "ActiveRecord::Batches",
"ActiveRecord::Calculations", "ActiveRecord::Serialization", "ActiveRecord::AutosaveAssociation",
"ActiveRecord::NestedAttributes", "ActiveRecord::Associations", "ActiveRecord::AssociationPreload",
"ActiveRecord::NamedScope", "ActiveRecord::Callbacks", "ActiveRecord::Observing",
"ActiveRecord::Timestamp", "ActiveRecord::Dirty", "ActiveRecord::AttributeMethods",
"ActiveRecord::Locking::Optimistic", "ActiveRecord::Locking::Pessimistic",
"ActiveSupport::Callbacks", "ActiveRecord::Validations", "Object", "Mocha::ObjectMethods",
"JSON::Pure::Generator::GeneratorMethods::Object", "ActiveSupport::Dependencies::Loadable",
"Base64::Deprecated", "Base64", "PP::ObjectMixin", "Kernel"
]
: Bir nesne olup olmadığı aşağı kaynar
SubGroup.ancestor_classes #=> only the classes in the tree
SubGroup.ancestor_modules #=> only the modules in the tree
ancestor_names.each do |name|
if class?(name)
puts "#{name} is a Class"
elsif module?(name)
puts "#{name} is a Module"
end
end
ya ..., nasıl kontrol edebilirim Bir sınıf mı yoksa modül mü?