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
340
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
190
Webフレームワークの功罪 / Advantages and considerable point of Web Frameworks
mather
0
250
LeacTion!のアップデートとプチ勉強会へのいざない / Updates of LeacTion and Petit Meetup
mather
0
350
LeacTion!について / About LeacTion!
mather
0
280
認知と思考パターン / Cognition and Pattern
mather
1
250
「モデル」を考える / Think about "model"
mather
0
350
Shall we make a speech?
mather
0
200
Elmでライフゲーム / LifeGame in Elm
mather
1
920
Elmで関数型を意識する / Think functionally with Elm
mather
0
340
Other Decks in Programming
See All in Programming
コードレビューで学ぶ!Kotlinオブジェクト指向デザインパターン
akkie76
2
170
本格ローグライク制作にEbitengineを選んでみた
nagainaganawa
0
290
pixivアプリでマルチモジュールを実現するまで
gatosyocora
1
130
今の SmartHR にエンジニアで入社するとどうなるの?
daisukeshinoku
5
4.6k
CQRS/ES avec Symfony, c’est (trop) bien !
jeremyfreeagent
1
630
両面どころかインフラもTSでできるよ ~ 全方位TypeScriptによるプロダクト開発 ~
myfinder
9
3.2k
Folding Cheat Sheet #2
philipschwarz
PRO
0
110
Ruby Function Composition
bkuhlmann
1
330
PostmanでAPIの動作確認が楽になった話
h455h1
0
110
1인 개발자로 행복하게 살기 - GDG 송도 헬로월드 2024
benjaminkim
1
5.6k
0→1と1→10の狭間で Javaという技術選定を振り返る/Reflecting on the Decision to Choose Java Between Scaling from 0 to 1 and 1 to 10
jaguar_imo
2
360
データアナリストが行うDatabricksを活用したETLの自動化事例
shinoa
0
250
Featured
See All Featured
Building Applications with DynamoDB
mza
88
5.6k
Code Review Best Practice
trishagee
54
15k
Building a Modern Day E-commerce SEO Strategy
aleyda
16
6.3k
For a Future-Friendly Web
brad_frost
171
8.9k
Designing on Purpose - Digital PM Summit 2013
jponch
110
6.4k
Visualization
eitanlees
135
14k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
658
120k
The Invisible Side of Design
smashingmag
293
49k
Scaling GitHub
holman
457
140k
Unsuck your backbone
ammeep
662
57k
How to train your dragon (web standard)
notwaldorf
71
5.1k
Designing for Performance
lara
601
67k
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
ご清聴ありがとうございました