目指そうかなRubyist RSSフィード

 | 

2011-06-11

[meta] Moduleクラスのconstants()メソッド  [meta] Moduleクラスのconstants()メソッド - 目指そうかなRubyist を含むブックマーク はてなブックマーク -  [meta] Moduleクラスのconstants()メソッド - 目指そうかなRubyist  [meta] Moduleクラスのconstants()メソッド - 目指そうかなRubyist のブックマークコメント

現在のスコープにある全ての定数を返す

module M
  Y = '他の定数'
  class C
    ::M::Y
  end
end

p M.constants # => [:Y, :C]

クラス名Cも定数。

Module.constants()は現在のプログラムのトップレベルにある定数を返す。

ruby-head :008 > Module.constants
 => [:Object, :Module, :Class, :Kernel, :NilClass, :NIL, :Data, :TrueClass, :TRUE, :FalseClass, :FALSE, :Encoding, :Comparable, :Enumerable, :String, :Symbol, :Exception, :SystemExit, :SignalException, :Interrupt, :StandardError, :TypeError, :ArgumentError, :IndexError, :KeyError, :RangeError, :ScriptError, :SyntaxError, :LoadError, :NotImplementedError, :NameError, :NoMethodError, :RuntimeError, :SecurityError, :NoMemoryError, :EncodingError, :SystemCallError, :Errno, :ZeroDivisionError, :FloatDomainError, :Numeric, :Integer, :Fixnum, :Float, :Bignum, :Array, :Hash, :ENV, :Struct, :RegexpError, :Regexp, :MatchData, :Marshal, :Range, :IOError, :EOFError, :IO, :STDIN, :STDOUT, :STDERR, :ARGF, :FileTest, :File, :Dir, :Time, :Random, :Signal, :Process, :Proc, :LocalJumpError, :SystemStackError, :Method, :UnboundMethod, :Binding, :Math, :GC, :ObjectSpace, :Enumerator, :StopIteration, :RubyVM, :Thread, :TOPLEVEL_BINDING, :ThreadGroup, :Mutex, :ThreadError, :Fiber, :FiberError, :Rational, :Complex, :RUBY_VERSION, :RUBY_RELEASE_DATE, :RUBY_PLATFORM, :RUBY_PATCHLEVEL, :RUBY_REVISION, :RUBY_DESCRIPTION, :RUBY_COPYRIGHT, :RUBY_ENGINE, :ARGV, :Gem, :TSort, :RbConfig, :Config, :CROSS_COMPILING, :Exception2MessageMapper, :IRB, :RubyToken, :RubyLex, :Readline, :Date, :BasicObject] 

現在のパスが必要ならばModule.nesting()を使う

module M
  class C
    module M2
      p Module.nesting # => [M::C::M2, M::C, M]
    end
  end
end
 |