私はシューオンマイダーです。私は1つのルビーコミュニターです。私はバッグフィーチャースを紹介しました。例えばコンキュニケーションです。誰が使っているのでしょうか。ごめんなさい。私はルビーコミュニターのオブジェクトを使っています。私はネットワークアプライズコミュニケーションのラブラリーです。私はバッグフィーチャースを使っています。私は彼にもお金を付けています。私はルビーアスチェーションのプロモーションです。ルビーアスチェーションはオーガニューションです。このオブジェクトはデザイン、プロモーション、デザイン、プロモーションを作っています。私はマスエシマネジャカンです。マスエはニオリの姿勢です。彼らはとても違います。彼らは日本語の話を使っています。とても面白いです。彼らはオブジェクトを使っています。彼らはオブジェクトを使っています。でもこの話は私の目標です。彼らはアリアンスチェーションです。彼らはオブジェクトの話を使っています。私はオブジェクトの話を使っています。オブジェクトの話を使っています。日本人は英語にも良い資料を出します。今日はここでそれを紹介します。それでは、私はコメントください。この話を話すために、ネットレストランスのホームユニーズで観たいときのスタンディングのフライヴェイズメッセンスでしかし、クラスウォークスは何かが欲しいのではないかもしれません。私は今日、新しいフィッシュアップをお話しします。しかし、クラスウォークスは何かが欲しいのではないかもしれません。クラスウォークスは、クラスウォークスを増やす方法です。クラスウォークスはいつも防ぎます。先にしまとも、 educational care私はお出週のプレイプメージが必要消し、これでクラスウォークスは、毎年ヘッドが利用します。つまり、クラスウォークスは特徴のレケートの危巧でありません。クラスウォークスは、この対応を子どもの学習については、スペースを経験するために、SPSについては、SPSはインスコークサブスタイトの価値を負担するのです。このスペースを負担するために、スペースタイトの価値を負担するのです。サブタイトルはサブタイトのインスタントを取材することができます。これが非常に有名なインスタントです。バーバーレスコープはクルーのイザイナーです。クルーのイザイナーはC-L-Uです。クルーのイザイナーはルビー・イザイナーのイザイナーです。このスタントはA-L-Bのイザイナーにあるエイドアスティールです。このイザイナーはクリース名の説明にあります。このイザイナーの説明はDoc アジメンです。このエイドアスティールはC-L-L-Uのインスタントです。このイザイナーによるアンスタントの説明にあるエイドアスティールです。このプログラムは、N4E交渉のフレーズしたフレーズをつけ、このフレーズは、によって、フレーズの名前に、エンピニュークラスを並べています。このフレーズは、科職の的时候に貼り付け、このプログラムの名前は、レクタンブルーの名前につけ、このクラスについて、 Swiftと者数を作る フレーズが、QUAREを作る、スクエアオーバーライドメソドウィース イコール&ハイプイコールこの2メソドウィースはエリアスのセーブサイズセーブサイズはウィース&ハイプと同じバイブこのプログラムでグローバルファンションセーブサイズこのファンションセーブウィース&ハイプ&ハイプ&セーブサイズこのセーブサイズが请け入れをスクエアした場合ling allowingセーズエアレゼーファンションセーブサイズもちろん、これはスペシャルの試合の技術です。例えば、スペシャルの技術を実行するためにスペシャルのインターフェイスの部分は同じです。しかし、スペシャルの技術は不適。これはルミ特徴です。ルミ特徴は、LSPバイオンライトです。ルミが本物の名前を作っているので、名前を説明してください。名前を説明してください。Rubyはサブクラフティンではありません。サブクラフティンはインターフェイスインケージャンですがRubyにはインターフェイスインケージャンがありません。Rubyはサブクラフティンではありません。サブクラフティンはインターフェイスインケージャンではありません。次はミクシンケージ。ミクシンケージの特徴は国内の式のものですがRubyはサブクラフティンではありません。生徒や技術をわかるさかを感じます。路地を構築するため、各エンヘジヨルトを主張します。主張に合わせられたモデルが各エンヘジヨルトに必要です。モデルが無いですね。モデルはスペースを使うため、宗教の道路を使っている方法は特に特別に改めているものです。今のモノコーから 研究者の行動をしていますこのモノコーは 他の人々に所属することができますシングトメソドは エイシアンスマスクを使うことができますこれがとにかく重要ですシングトメソドは 自分の手に飛び立てる技術を使っていますしかし、少しのミッドの診断能はあります。例えば、インスタンシーでインスタンシーを使っては、インスタンシーのミッドの診断能はありません。最後は、オープンクラスイーです。このインスタンシーをオープンする人と言います。オープンクラスイーで、クラウスでインスタンシーのクラウスはクラウスで、インスタンシーの behavior を表現することができます。クラウスは、グローバルに伸びているものです。オープンクラスのアプリケーションがあります。ルビオン・レールはモンキーパチンのグッズの例です。ルビオン・レールは上手なプロジェクトです。あなたはあなたが新歌を歌うことではありません。アプリケーションはアクリスタフォーです。彼らは、エヘシアのブレークが表現できることができることができます。私は同じことをしていますが、私はあなたのユーザーがありません。私はあなたの手を伸ばす必要があります。私はあなたが今の手を伸ばす必要があります。レールは、プラグリンのシステムです。プラグリンのシステムはオープン・マッチンのグレーマットのクラスです。プラグリンは、エリアスを使うオリジナルメソッドです。エリアスメソッドは、彼らは、ルビオン・レールの歌歌を歌うことができます。彼らは、彼らは、日本の歌手の歌手のメソッドを歌うことができます。ユーザーは、ルビワー9をラ級バッチリンバーです。私は、アリアスマッチリンが私たちのナタロウへのアクセントを使います。わずかレールのクラスというアクセントがあります。彼らは、エルスピーを大に回すことができます。そして、スーパータイプは、クラス之前 openで、スーパータイプは、 クラス之前 open。そのため、物事には、クラス前で、 リオープンに移動する必要があります。ここで、リオープンは、 エルスピヴァイオレーンで、Ruby means integral decision, so it returns integral.But if you require a machine, it returns rational numbers.They are not compatible, so if you require a machine, existing code will be broken.Rubclassing and mixing are not performed by client.Chincon methods can be performed by client, but they are far overdue.Open class is also performed by client, but it's global.What's the problem?Rubclassing, mixing, and Chincon methods are less expensive.Open class is less modular.Extensibility and modularity are very important in software construction.We have to solve this problem.What we need is cloud extension.It can be performed by client, and it works for cloud, which is global.There are two possible solutions.Elektron M-space and crosswalk space.Elektron M-space is a feature which is implemented in small-screen and ECM-script 4.Small-screen is an implementation of small talk on .NET framework.ECM-script is well-known as JavaScript.ECM-script 4 is an abandoned version.The previous version of ECM-script was version 3, and now it's version 5.Elektron M-space-script 4 is very large and it is space.Elektron M-space is a name space for methods names.Small-talk methods names are called sectors, so it is called .NET space.NET space can be implemented into other namespaces.Elektron M-space is a registry scope, and crosswalks is implemented in .Script and .Java.Script is also an implementation of small talk.Crosswalks is a module where classes are defined and or extended.Here, a module is not a Ruby module.Crosswalks can be imported into other crosswalks.Difference between .NET space and crosswalks is a dynamic scope.It is called local divining.This is an example of crosswalks.j.It defines a class full in package full, and by the crosswalks, it defines full and other methods bar.Then in package bar, the crosswalks bar is importedwhere you can import bar on instance of full.This is an example of local divining.It is very hard to explain in English.Please look at both.In package bar, the method bar is import.If you import crosswalks bar, bar will be overridden.If you import full bar, in this example, it prints behind.But if it is in .NET space, it prints original.If local divining needed, I doubt it.But local divining is less modular.Who might expect the original behavior?It might be broken.Please remember the history of local variable scoping.Do you know any popular language which supports dynamic scoping?Common list.Common list?Yes.By the way, it is flexible, right?I know only one language which is EMAC Swiss.Syndrome methods and open classes can be alternative in Ruby.However, effective scopes are different.It might be difficult to use the class box.I would like to propose a new feature for refinement.This is a newly implemented feature of Ruby,but it is not yet model into the official Ruby repository.It is only my private repository.Refinement of classes are defined per module and effective scopes areextricity special and there is no local refinement.The syntax of refinement are similar to class box 3.This is an example of refinement.This is an example of refinement of module and whole refinement of machine.Refine fix now and modify the slush method.It has to call using to use this refinement.In this example, in the class 2, the slush method is overridden.Outside the class, the behavior of the method is the original one.I would like to show you a short demonstration.Refining of refinement.Refining is a method you can call it in blocks into here.But if you are using machine, if you define method outside module,class box is between rational numbers,but this refinement, lexical, is called discipline integer.Refine to module class.The module class is class of module.Refine takes one argument and takes one block.Additional or overriding method of class defined in block.A set of such method is called refinement.Refinements are created only in the receiver moduleand scopes where the module is imported by using.Refine can also be imported on class 3.So you can write like this.And I can use it.Using takes one argument.Using involves refinement defined in that argument.Refinement are activated only in a five module class on method where using is involved.This is lexical.This is an example.I would like to show you module using.Module using overrides kernel using.The basic behavior is the same,but besides module using supports reopen and inheritor.This is an example of module using.You are using A in the class 2.It is available in reopen definition.And if you create a subclass of food,A is also available in.But using includes independent feature.So if you include module,it does not activate refinement.Refinement are very complex.So I would like to skip.This is an example.In this example,if you involve some method on an instance ofq-u-u-x,the method is searched first in cooksand next bath and next bathand finally,thrushed in food.You can use original features from refinement.Super in refinement involves the original method if any.If there is method in the same name inreviably imported refinement,super involves the method.In refinement, constant and plus variablein the original class is also accessed.This is an example.Refinement are supported inspecial variable.Refinement are also activatedin instance variable,module variable and class variable.This is an example.If you are using mass end in the class food,mass end is activated inclass variable and instance variable.How about comparability?Refinement is so powerfulthat I do not have to add new keywordsso basically the behavior ofall these refinement never change.But there are some exceptions.If you think of the method name you findor using,it may cause some problem.I would like to show you some application of refinement.Refinement are useful for between classes.Refinement are activated in particular scopeso it's moreit's modular.So you can violate LSP write mass endbecause it is reexperienced scopeso this code will not be broken.Refinement intelligence is useful for framework.This is an example.Correctly,active support isactivated globally butif you use refinementyou canremind the scope where active supportis available.Refinement can be usefulfor internal DSL.Messages for DSLneed not to be available outside DSL.So these methods can be defined in refinement.Instance variable and moduleever are useful for DSL.This is an example.This is like aspect.I don't like aspectbecause it modifytarget code for testing.I think it's better not to do it.So ifyou use refinementfor example the method is only availablein the block which is passed to each method.Refinement also appliesto nested methods.Currently nested methodsin Ruby are not usefulbecause nested methodsdefine outside the method.I modify itin my implementationInner method is defined in refinementwhich are only activated in this method.Next to this benchmark script5 times mainly benchmark isbundled with the source code of Ruby.I added some benchmark scriptsfor refinement and nested methods.This is an exampleof benchmark scriptif using this defineif use refinementbut otherwise if use monkey patchthe result is2.5% slower than the original Ruby.These are samples from benchmark script.I don't know why butlook times is faster than the original Ruby.It may be measuring error butI have modified the vnso some magic might happen.I am not indebtigated yet.Why would 4imesossuper slowerI think they are reasonable.There are some consideration.Finally include usingindependent butthey mayshould they be integratedI wonder whetherthey should be integrated.There is a workaround.You can use a hook methodso if you defineyou caninvolve it from usingif you include in use methodyou can provide both featuresat the same time.Cymbeton methods cannot be refinedbut there is also a workaroundyou can refine Cymbeton classcurrently the argument of refinementshould be a class.You cannot refine modulebut you can refine classwhich includes the module.Finally our information may need moreimplement but it's not my work.I guess for each time we do it.My patch is available here.Compliment achieves a good balancein severity and majority.That's all for my presentation.Thank you.Any question?Yeah, has there been any determinationis a decision that this will notmake it into the main ruby or ifthat decision has yet been madewhether has it been proposed for main ruby?Yeah.It's over.Find the most importantnot yet.He will be tired.What was the question?The question isis it?It has been proposed for main ruby.I don't think so.So is there any plan to adda reflection, a way to reflect onwhich class boxes are active at any point?Of course.RefineRefine現在使えるRefineMateを見ることがありますか?Sorry, not for yet.Can you go back to your URLslide so people can see that?Just maybe see it.Can you discuss the reasonseither to or to not mergewith using to make themeither the reasons to keep them separateor the reasons to put them together?I think they arevery different features.So I wonderwhether they should be integratedusing effectsto scoresnot on receivers.They are very important different.So what happens with inheritance?It seems like you are creatingand so what happens if Ioverwrite method foo and call superin a class?Will I end up in the foo of thesuperclass of the class I was refining?Or will I end up in the original method?Could you say it again?Do you write for the key?So if I refine a classwe can communicate in a movieeditor program.Good luck.Is it possible to do using here?This is down the bar.My question may not be validbut I'm not sure that I fully grasped this yetbut what additional support does there need to befor unit testing and debuggingof live objects?If you're trying tosimulate something under the debuggerand your visibility is lexically scopedhow can you access the lexicallyscoped modificationsin order to properly debug?Or test?The refinements are based onthe instance of alimodule aboutcouldn't you just use instance of alimodulefor the instance that you wantedtheir refinements to be inin order to get their refinementsin the scope of that time?Other than the file-based refinementsthat you do with kernel outusingor anything that uses module outusingcouldn't you just use instance of alimodulemodule of alimodulein order to get their refinementsin order to put in those module outusing?YupI agree with thatI agree with thatI agree with thatGo write it outAnyone else understand that question?That's what we ask it.I trust that you will solve the issue.Your question was sort of asking for clarificationabout the last thing.The last question, right?So, if you have a lexically scopedrefinement and you want to testsomething about it,you can use instance deval toaccess the refinement from the test.Ah yes, you can do it.It's probably a live environment.You have to figure out all the thingsyou need to discuss it.It says it doesn't work well.So are class boxesdefinitely dead in Rubyor are they still being considered?You mean local revinding?Have we rejected class boxesfor refinementsor are they both still vinyl?We gave up local revinding.So we will not havethat class box.Thank you.