class-eval

    1

    1答えて

    私はrails-settingsの宝石を使用していますが、私はActiveRecordクラスに関数を追加する方法を理解しようとしています(私はカードゲーム用の独自のライブラリを構築しています)宝石は、ActiveRecordのに機能を追加するためのメタプログラミングテクニック::基本クラスの1(私は遠くルビーにおけるメタプログラミングマスターからだけど、私はそれを学ぶためにしようとしている) mo

    0

    1答えて

    呼び出されるメソッドが "plus"で始まる場合は、class_evalを使用してメソッドをメタプログラムで作成しようとしています。しかし、私はplus10(または任意の数)が呼び出されるとclass_evalメソッド class Adder def initialize(my_num) @my_num = my_num end def my_num

    16

    1答えて

    class_evalを使用して、現在のクラスのコンテキストで実行されるコードを記述しています。次のコードでは、属性値の変更のためのカウンタを追加したいと思います。私の場合には、class Foo下 - class Class def attr_count(attr_name) attr_name = attr_name.to_s attr_reader attr_na

    2

    1答えて

    class_evalとinstance_evalは、メソッドの定義のような場合にはかなり予測可能です。私はまた、クラスのインスタンスとクラスのシングルトン(別名固有クラス)の違いを理解しています。 しかし 私は次のような唯一の事を把握することはできません。 一部strageの目的のために、私たちはシングルトンであることを、既存のクラスを作りたい、のは言ってみましょう。どちらの場合も class A

    1

    1答えて

    class Class def attr_accessor_with_history(attr_name) attr_name = attr_name.to_s # make sure it's a string attr_reader attr_name # create the att

    1

    1答えて

    私は不満な問題に遭遇したときに宿題に取り組んでいました。この割り当てはRubyメタプログラミングの練習であり、目標は 'attr_accessor'と同じことをする 'attr_accessor_with_history'を定義することですが、属性がこれまでにあったすべての値の履歴も提供します。ここで私は割り当てを完了しようとする試みで追加され、いくつかのコードと一緒に割り当てから提供されたコード

    1

    1答えて

    class_eval(文字列をコードに変換する)のように見えて、新しいdefメソッドでクラスを宣言するのは本質的に同じことです。 本当に同じですか? それぞれの長所と短所は何ですか?

    0

    1答えて

    したがって、class_evalの以下のメソッドは、実行時に定義された属性のアクセサーを動的に作成します。たとえば、設定ファイルから読み取った属性を持つ構成オブジェクトを作成するために使用できます(実行時までは不明です)。私はelseブランチを除いてすべてを理解しています。私が正しければ、* valに1つの値が渡された場合、elseブランチは属性値(val [0])を返します。しかし、* varに