Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rubyでワンライナー / One-liner on Ruby
Search
mather
March 13, 2020
Programming
0
390
Rubyでワンライナー / One-liner on Ruby
mather
March 13, 2020
Tweet
Share
More Decks by mather
See All by mather
SolidjsでLeacTion!を作り直しました / Rebuilt LeacTion! in Solid.js
mather
0
260
Webフレームワークの功罪 / Advantages and considerable point of Web Frameworks
mather
0
310
LeacTion!のアップデートとプチ勉強会へのいざない / Updates of LeacTion and Petit Meetup
mather
0
400
LeacTion!について / About LeacTion!
mather
0
300
認知と思考パターン / Cognition and Pattern
mather
1
260
「モデル」を考える / Think about "model"
mather
0
360
Shall we make a speech?
mather
0
210
Elmでライフゲーム / LifeGame in Elm
mather
1
960
Elmで関数型を意識する / Think functionally with Elm
mather
0
370
Other Decks in Programming
See All in Programming
Jakarta EE meets AI
ivargrimstad
0
390
Findy - エンジニア向け会社紹介 / Findy Letter for Engineers
findyinc
4
90k
Debugging: All you need to know (for simultaneous interpreting)
jmatsu
2
800
RAGの回答精度評価用のQAデータセットを生成AIに作らせた話
kurahara
0
250
watsonx.ai Dojo #2 生成AIを使ったアプリ開発入門編
oniak3ibm
PRO
0
180
Prompt Cachingは本当に効果的なのか検証してみた.pdf
ttnyt8701
0
530
How to Break into Reading Open Source
kaspth
2
210
GraphQL あるいは React における自律的なデータ取得について
quramy
11
3k
Rubyのobject_id
qnighy
6
1.3k
Using Livebook to build and deploy internal tools @ ElixirConf 2024
hugobarauna
0
250
いまから追い上げる、Jetpack Compose トレーニング
nyafunta9858
0
590
Securify_エンジニア採用資料
3shake
0
100
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
39
2.3k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Building Adaptive Systems
keathley
36
2.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
36
1.7k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
1
53
How to train your dragon (web standard)
notwaldorf
85
5.6k
GraphQLの誤解/rethinking-graphql
sonatard
65
9.8k
Agile that works and the tools we love
rasmusluckow
327
20k
Intergalactic Javascript Robots from Outer Space
tanoku
268
26k
The Cost Of JavaScript in 2023
addyosmani
42
5.7k
Web development in the modern age
philhawksworth
205
10k
Navigating Team Friction
lara
183
13k
Transcript
Ruby でワンライナー 2020-03-13 Ruby みやざき #1 桑畑英資
⾃⼰紹介 self_introduction = { name: " 桑畑英資", age: 36, job:
" フリーランスエンジニア", fav_language: %w(Scala Elm Ruby), comment: <<-EOS.gsub(/^ */, ""), ⼤学のときにRuby を使う授業でRuby に触れて慣れ親しむ。 その後にJava などにも触れたが、 オブジェクト指向の⾔語としてはRuby の⽅が好きだった。 更にその後Scala を知ったので(以下略) 今でもツールの⽤途でRuby は触っている。 EOS twitter_id: "@mather314" }
ワンライナーとは One-liner、⼀⾏で動くコード Perl ではよくある話 シェルスクリプトでもよくある話 grep とか、 sed とか、 awk
とか、etc... 最近だと peco とかも使えるから可能性が広がって捗る 例: 空のディレクトリに .gitkeep を作るワンライナー for f in $(find . -type d -empty | grep -v '.git/') ; do echo "$f/.gitkeep" ; done (実際に実⾏するときは echo を touch にする)
Web フレームワークばかり使ってませんか? Ruby は汎⽤プログラミング⾔語です 当然ですがスクリプトとして利⽤できます REPL (irb, pry) mruby など組み込みにも利⽤されている
極端な例として今回はワンライナーを紹介 実は ruby コマンドにはいろいろな便利オプションがありま す -e : ⽂字列をスクリプトとして実⾏する -r :
ライブラリを読み込んで実⾏する (require) -n , -p : while gets; ... ; end のように囲んだ状 態で動作する 「それ Ruby じゃなくてもできるよ!」というツッコミは (知ってるので)無視します
単体で $ ruby -e 'puts "Hello,world!"' Hello,world! $ ruby -e
'puts [*1..10].shuffle.join(", ")' 2, 1, 4, 9, 10, 7, 6, 8, 5, 3
標準⼊⼒と $ cat lorem.txt Lorem ipsum dolor sit amet, consectetur
adipiscing elit, ... $ cat lorem.txt | ruby -e 'puts $<.read.split(" ") .map(&:capitalize).join(" ")' Lorem Ipsum Dolor Sit Amet, Consectetur Adipiscing Elit, ... $< : 標準⼊⼒をファイルとしてアクセスできる read の他、 each , readlines とかも便利。
ライブラリも使って $ seq 1 100 | ruby -r prime -n
-e 'puts $_ if Prime.prime?($_.to_i)' 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
ご清聴ありがとうございました