kachick / times_kachick

`#times_kachick channel in chat` as a public repository. Personal Note and TODOs
https://github.com/kachick/times_kachick/issues?q=is%3Aissue+is%3Aclosed
6 stars 0 forks source link

2022-10-27 - crystal で Ruby のワンライナーを書き換えてみる - JSON 取り扱い #196

Closed kachick closed 1 year ago

kachick commented 1 year ago

GitHub Actions で JSON Array を いくつかのチャンク?に分割したい時があった。 jq でも関数定義が要るようなので 、多分 runner に最初から入ってる処理系でサクッとワンライナー走らせるのが良いと思う。 node とか python の方が将来的にも確実だろうけど、ワンライナーなら Ruby だろうということでこんなんとか

ruby -r json -e 'pp JSON.parse(STDIN.read).each_slice(10).to_a'

crystal でこういうの出来るんかな?と思ったら、まぁRuby程ワンライナーに適してる感は無いけど大体似た感覚では書けた

crystal eval 'require "json"; pp Array(String).from_json(STDIN.gets_to_end).each_slice(10).to_a'

JSON.parse とかはあるんだけれど、型が強いのでちゃんと指定してparseする必要がある。

そもそも runner に crystal 入って無い上に、https://github.com/crystal-lang/install-crystal の実行に11秒ぐらいかかったりするのでちょっと actions 内ワンライナー的な用途には無理があると思うけれど

kachick commented 1 year ago

そもそも runner に crystal 入って無い

なら最初から入ってる Haskell はどうなんや

https://github.com/kachick/action-parse-asdf-tool-versions/pull/25

と初めての環境構築に四苦八苦しながら試してみたらもっと遅くなったので、げっそりして Ruby に書き換えた https://github.com/kachick/action-parse-asdf-tool-versions/pull/31 こういうスクリプト言語に向いてる仕事はスクリプト言語にやらせた方が良いんだろうなやっぱり・・・