タグ

ブックマーク / tech.buty4649.net (3)

  • rfコマンドの紹介: Rubyでテキスト処理を便利に - ぶていのログでぶログ

    この記事はRuby Advent Calendar 2023の21日目の記事です。 Rubyでワンライナーでテキストの処理をしたいと思ったことはありませんか?ありますよね! そういったときに便利に使えるCLIツールのrfを作ったので紹介します。 モチベーション 具体例 インストール方法 rfの仕様 フィルタ レコードとフィールド コマンドと評価結果 特殊変数 定義済みメソッド match / match? メソッド at_exitメソッド 言語拡張 StringとInteger/Floatを直接計算、比較できる Hashのキーをメソッド名として扱える 未定義の変数にInteger/Float/String、Arrayへの要素追加ができる おわりに モチベーション 普段のオペレーションの中で、ファイルの特定の文字列を含む行を出力するにはgrepを使うと思います。 grepより複雑なことをやら

    rfコマンドの紹介: Rubyでテキスト処理を便利に - ぶていのログでぶログ
    onk
    onk 2024/01/31
  • Rubyのコードでplain text/JSON/YAMLを整形できるrfコマンドを作った - ぶていのログでぶログ

    github.com 2023/05/15追記: リポジトリのリンクを追加(thx: id:k1low !!) モチベーション 私はcliでテキストを編集するときはawk/sedを使い、JSONはjq、YAMLはyqを使っている。 それぞれ単純な処理ならあまり苦労せず使えるのだが、複雑な処理をしたい場合スクリプトを組んだりしないといけない。 そういったときにRubyでガっと書いてしまいたいのだけど、ruby -ane '〜' だとそれはそれで書くコードが長くなってめんどくさい。 そこで、コードゴルフしやすいようなメソッドなどを追加してコードが長くなるのを防ぎつつ、Rubyのコードでフィルタ処理をかけるようなcliツールがあると便利そう!というのがモチベーション。 また、mrubyで何かしらのcliツールを作りたいというのもモチベーションの1つ。 インストール方法 今回作成したrfはzig

    Rubyのコードでplain text/JSON/YAMLを整形できるrfコマンドを作った - ぶていのログでぶログ
    onk
    onk 2023/05/15
  • mrubyを使ってWASMバイナリを作る - ぶていのログでぶログ

    Zigで簡単クロスコンパイル 2022を読んでZigを使えばクロスコンパイルできることを知る -> Zigを使えばWASMバイナリが作れる ->つまりmrubyWASMバイナリが作れるのでは?っと思いついたのでやってみたら、条件付きでWASMバイナリにクロスコンパイルできたのでメモしておく。 WASMバイナリのビルドの手順 まず冒頭に書いた条件付きとなっている理由に着いて説明する。 詳しくは後述するのだがWASMにクロスコンパイルするためにはWASMのexception handling機能を使う必要がある。 この機能は2023/02/20時点ではすべてのWASMランタイムで動くわけではないため、今回はこの機能に対応したNode.jsをランタイムとして使用する。 また、exception handling機能に絡んでもう1つ制約がある。 ここで紹介する手順ではRubyのraise〜cat

    mrubyを使ってWASMバイナリを作る - ぶていのログでぶログ
    onk
    onk 2023/02/21
  • 1