Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

2014-08-01から1ヶ月間の記事一覧

Ruby | Module | include

概要 Module#extended(obj) -> object 詳細 モジュール mod をインクルードする。 サンプルコード module Hogeable def hogeable print 'hogeable' end end class Hoge include Hogeable end Hoge.new.hogeable 出力 $ ruby include.rb hogeable 参照 http:/…

Ruby | Module | extended

概要 Module#extended(obj) -> object 詳細 self が他のオブジェクト に Object#extend されたときに呼ばれる。 引数には extend を行ったオブジェクトが渡されます。 サンプルコード module ForExtend def self.extended(obj) print <<-EOS extended obj = …

Ruby | Module | extend_object

概要 Module#extend_object(obj) -> object 詳細 Object#extend の実体。オブジェクトにモジュールの機能を追加する。 サンプルコード require 'pp' module ForExtend def extend_method 'extended' end end class Person end person = Person.new ForExtend…

CodeIQ | 『TSVファイルをLTSVに変換しよう』問題 @tbpgr #CodeIQ

概要 『TSVファイルをLTSVに変換しよう』問題 詳細 『TSVファイルをLTSVに変換しよう』問題 の出題を開始しました。 https://codeiq.jp/ace/tbpgr_badge/q1025 CodeIQ MAGAZINE アクセスログ解析が楽になる日本産テキストフォーマットLTSVを知っていますか?…

CodeIQ | 『LTSVをparseしよう 』問題 @tbpgr #CodeIQ

概要 『LTSVをparseしよう 』問題 詳細 『LTSVをparseしよう 』問題 の出題を開始しました。 https://codeiq.jp/ace/tbpgr_badge/q1024 CodeIQ MAGAZINE アクセスログ解析が楽になる日本産テキストフォーマットLTSVを知っていますか? #ltsv https://codeiq.…

Ruby | Module | define_method

概要 Module#define_method(*name) -> nil 詳細 インスタンスメソッド name を定義する。ブロックを与えた場合、メソッドの実行時に指定しがブロックが レシーバクラスの インスタンスの上で BasicObject#instance_eval されます。 サンプルコード require '…

Ruby | Module | attr_writer

概要 Module#attr_writer(*name) -> nil 詳細 インスタンス変数書き込みのインスタンスメソッドを定義する。つまり class Person attr_writer :name def initialize(name) @name = name end end は class Person def initialize(name) @name = name end def …

Masterminds of Programming 言語設計者たちが考えること 書評

概要 Masterminds of Programming 言語設計者たちが考えること 書評 構成 1章 C++ 2章 Python 3章 APL 4章 Forth 5章 Basic 6章 AWK 7章 Lua 8章 Haskell 9章 ML 10章 SQL 11章 Objective-C 12章 Java 13章 C# 14章 UML 15章 Perl 16章 PostScript 17章 Eiff…

Ruby | Module | attr_reader

概要 Module#attr_reader(*name) -> nil 詳細 インスタンス変数読み取り用のインスタンスメソッドを定義する。つまり class Person attr_reader :name def initialize(name) @name = name end end は class Person def initialize(name) @name = name end de…

Ruby | Module | attr_accessor

概要 Module#attr_accessor(*name) -> nil 詳細 インスタンス変数読み書きの両方のインスタンスメソッドを定義する。つまり class Person attr_accessor :name def initialize(name) @name = name end end は class Person def initialize(name) @name = nam…

Ruby | Module | attr

概要 Module#attr(name, assignable = false) -> nil 詳細 インスタンス変数読み取りのためのインスタンスメソッド name を定義する。つまり class Person attr :name def initialize(name) @name = name end end は class Person def initialize(name) @nam…

Ruby | Module | append_features

概要 Module#append_features(module_or_class) -> self 詳細 モジュール or クラスに self の機能を追加します。 このメソッドは Module#include の実体である。 サンプルコード include 直前に乱数を生成して結果によって include を継続するかどうか判断…

Ruby | Module | remove_class_variable

概要 Module#remove_class_variable(name) -> object 詳細 引数で指定したクラス変数を取り除き、そのクラス変数に設定されていた値を返却。 サンプルコード class Hoge @@class_variable = 'hoge' p @@class_variable p remove_class_variable(:@@class_var…

Ruby | Module | public_method_defined?

概要 Module#public_method_defined?(name) -> bool 詳細 インスタンスメソッド name がモジュールに定義されており、 しかもその可視性が public であるときに true を返却。 そうでなければ false を返却。 サンプルコード require 'tbpgr_utils' module H…

Ruby | Module | public_instance_method

概要 Module#public_instance_method(name) -> UnboundMethod 詳細 self の public インスタンスメソッド name をオブジェクト化した UnboundMethod を返却する。 サンプルコード require 'tbpgr_utils' class Hoge def hoge 'hoge' end end bulk_puts_eval …

Ruby | Module | public_class_method

概要 Module#public_class_method(*name) -> self 詳細 name で指定したクラスメソッド (クラスの特異メソッド) の 可視性を public に変更する。 サンプルコード class Hoge class << self def hoge print 'hoge' end private def private_hoge "private ho…