willnetの日記

|

2009-09-02

$"

23:19 | $" - willnetの日記 を含むブックマーク はてなブックマーク - $" - willnetの日記

requireでロードしたファイルを管理してる変数

> p $"
["e2mmap.rb", "irb/init.rb", "irb/workspace.rb", "irb/context.rb", "irb/extend-command.rb", "irb/output-method.rb", "irb/notifier.rb", "irb/slex.rb", "irb/ruby-token.rb", 
"irb/ruby-lex.rb", "readline.bundle", "irb/input-method.rb", "irb/locale.rb", "irb.rb", "rubygems/rubygems_version.rb", "rubygems/defaults.rb", "thread.bundle", "thread.rb", 
"rbconfig.rb", "rubygems/exceptions.rb", "rubygems/requirement.rb", "rubygems/version.rb", "rubygems/dependency.rb", "rubygems/gem_path_searcher.rb", 
"rubygems/user_interaction.rb", "rubygems/platform.rb", "rubygems/specification.rb", "rubygems/source_index.rb", "rubygems/builder.rb", "stringio.bundle", "yaml/error.rb", 
"syck.bundle", "yaml/ypath.rb", "yaml/basenode.rb", "yaml/syck.rb", "yaml/tag.rb", "yaml/stream.rb", "yaml/constants.rb", "rational.rb", "date/format.rb", "date.rb", 
"yaml/rubytypes.rb", "yaml/types.rb", "yaml.rb", "rubygems/config_file.rb", "rubygems/custom_require.rb", "rubygems.rb", "etc.bundle", "fileutils.rb", "hirb/util.rb", 
"hirb/string.rb", "ostruct.rb", "hirb/hash_struct.rb", "hirb/helpers/table.rb", "hirb/helpers/object_table.rb", "hirb/helpers/active_record_table.rb", "hirb/helpers
/auto_table.rb", "hirb/helpers/tree.rb", "hirb/helpers/parent_child_tree.rb", "hirb/helpers/vertical_table.rb", "hirb/helpers.rb", "hirb/view.rb", "hirb/views
/activerecord_base.rb", "hirb/console.rb", "hirb/formatter.rb", "hirb/pager.rb", "hirb/menu.rb", "hirb.rb", "irb/completion.rb", "irb/ext/save-history.rb"]

2009-08-27

initializeメドッドは

12:21 | initializeメドッドは - willnetの日記 を含むブックマーク はてなブックマーク - initializeメドッドは - willnetの日記

自動的にprivateにされる

class式の値

12:12 | class式の値 - willnetの日記 を含むブックマーク はてなブックマーク - class式の値 - willnetの日記

classの最後の式の値

def文の戻り値

12:09 | def文の戻り値 - willnetの日記 を含むブックマーク はてなブックマーク - def文の戻り値 - willnetの日記

常にnil

Moduleのメソッド二つ

11:17 | Moduleのメソッド二つ - willnetの日記 を含むブックマーク はてなブックマーク - Moduleのメソッド二つ - willnetの日記

Module.nesting
このメソッドを呼び出した時点でのクラス/モジュールのネスト情報を配列に入れて返します。
Module.ancestor
クラス、モジュールのスーパークラスとインクルードしているモジュールを優先順位順に配列に格納して返します。

2009-07-28

evalでローカル変数を定義することはできない

17:42 | evalでローカル変数を定義することはできない - willnetの日記 を含むブックマーク はてなブックマーク - evalでローカル変数を定義することはできない - willnetの日記

eval(expr) -> object


expr の中のローカル変数の扱いはブロックの場合と同じです。すなわち、eval

実行前に補足されていた変数は eval 実行後にブロック外に持ち出せます。

なので

eval "x = 1"
p x # undefined local variable or method `x' for main:Object (NameError)

となる。eval以前にローカル変数xを使っていればエラーにはならない

2009-07-02

raise

22:27 | raise - willnetの日記 を含むブックマーク はてなブックマーク - raise - willnetの日記

raiseは引数なしだと、直前の例外を再発生させる

2009-03-21

logger

15:31 | logger - willnetの日記 を含むブックマーク はてなブックマーク - logger - willnetの日記

  • loggerはブロックも使える(ブロックからの戻り値が記録される)
  • 第二引数に'daily'などとすると日ごとでログローテーションできる(日ごとのローテーションでは作ったログは消せないので、別途cronを使う必要あり)

参考

Rubyist Magazine - 標準添付ライブラリ紹介 【第 2 回】 Logger

|