Sha256: c5819e17b38f3fe0a33424f4fcbd96c09dce6ee79b0c0b42422b788637afce28
Contents?: true
Size: 1.55 KB
Versions: 19
Compression:
Stored size: 1.55 KB
Contents
require 'active_support/inflector' class Module # Returns the name of the module containing this one. # # M::N.parent_name # => "M" def parent_name if defined? @parent_name @parent_name else @parent_name = name =~ /::[^:]+\Z/ ? $`.freeze : nil end end # Returns the module which contains this one according to its name. # # module M # module N # end # end # X = M::N # # M::N.parent # => M # X.parent # => M # # The parent of top-level and anonymous modules is Object. # # M.parent # => Object # Module.new.parent # => Object def parent parent_name ? ActiveSupport::Inflector.constantize(parent_name) : Object end # Returns all the parents of this module according to its name, ordered from # nested outwards. The receiver is not contained within the result. # # module M # module N # end # end # X = M::N # # M.parents # => [Object] # M::N.parents # => [M, Object] # X.parents # => [M, Object] def parents parents = [] if parent_name parts = parent_name.split('::') until parts.empty? parents << ActiveSupport::Inflector.constantize(parts * '::') parts.pop end end parents << Object unless parents.include? Object parents end def local_constants #:nodoc: ActiveSupport::Deprecation.warn(<<-MSG.squish) Module#local_constants is deprecated and will be removed in Rails 5.1. Use Module#constants(false) instead. MSG constants(false) end end
Version data entries
19 entries across 18 versions & 4 rubygems