RubyVM::AbstractSyntaxTree::Node 詳細
この記事は Okinawa.rb Advent Calendar 2018 の24日目の記事です。 RubyVM::AbstractSyntaxTree について Ruby 2.6 では Rub...
47 search resultsShowing 1~20 results
この記事は Okinawa.rb Advent Calendar 2018 の24日目の記事です。 RubyVM::AbstractSyntaxTree について Ruby 2.6 では Rub...
Proc オブジェクトのソースを表示するコードを書いてみました。 proc_source.rb require "ripper" class Proc def proc_source retur...
Ruby 2.6 から RubyVM::AbstractSyntaxTree.of が使えるようになりました。これは Method か Proc オブジェクトを受け取りその AST を返すもので...
概要 Ruby のメソッドのブロックのソースを取り出すコードを書いてみました。 block_source.rb def inspector(ast:, &block) ast.child...
Ruby の TracePoint について調べてみました。 Ruby 2.0 から導入された機能 TracePoint は Ruby 2.0 から使えるようになった機能です。様々なイベントをフ...
Ruby でフックできるイベントを調べてみました。 イベント一覧 メソッド一覧 メソッド名 呼び出されるタイミング method_missing 存在しないメソッドが呼び出された時 const_...
go の parser.ParseFile で AST を取得して、この情報からコメントの情報を消して format.Node を使って再度コードに戻すことでコメントだけが消えたソースを生成する...
Ruby のソースコードからコメントを集める comment_collector という gem を作りました。 例えば、こんな感じのコードがある時に example.rb # class co...
did_you_mean 1.2.0 から KeyError に対して key の予測候補が出せるようになったので、これを使って key を間違ってもアクセス出来るようにします。 key の候補...
TracePoint では Ruby の処理におけるいろいろな イベント を受け取ることが出来ます。 取得できるイベント一覧 イベント 説明 :line 式の評価 :class クラス定義、特異...
method_call_tree というコールスタックを tree コマンドっぽく表示させる gem を作りました。 require 'method_call_tree' class Foo d...
Ruby 2.5 の coverage では メソッドカバレッジを取得出来るようになったので、メソッドの呼ばれた回数を調べるコードを書いてみました。 チェック用のサンプルコード fizzbuzz...
ruby 2.5 では coverage の機能が増えて分岐カバレッジが取得出来るようになったので、試しに一番長い条件式を取得するコードを書いてみました。 チェック用のサンプルコード sampl...
思いついたので書いてみました。 method(__method__).parameters.map { |t, v| [v, eval(v.to_s)] }.to_h 使い方 def hoge(...
コードゴルフとはプログラムのソースコードをどれだけ短く書けるかを争う競技です。 自分は時々 Anarchy Golf や yukicoder でゴルフしています。 この記事では自分がコードゴルフ...
rugged は libgit2 を ruby にバインドした gem です。 gitの細かい操作が出来て便利。 自分が前に使っていた時のメモです。(1年前のなのでちょっと古いかも) color...
Ruby の配列操作である Array#pop と Array#shift は引数を渡すことが可能で、渡した引数の値の数の要素を取得することが出来ます。(0 を与えた場合は空配列が返ってきます)...
Ruby の配列操作である Array#push と Array#unshift は複数の引数を取ることが出来ます。 まとめて push list = [1, 2, 3, 4, 5] a = [...
英語の typo を生成するコマンドを作りました。 ruby 2.0 以上で動く(はず) インストール方法 gem install typogen 使用方法 typogen [word] 例 t...
https://docs.ruby-lang.org/ja/latest/method/Kernel/m/puts.html より抜粋 配列や文字列以外のオブジェクトが引数として与えられた場合に...
47 search resultsShowing 1~20 results
Qiita is a knowledge sharing service for engineers.