enechange-meetup.connpass.com LT参加しました!メモ魔なので、聞いた話をメモしました。
主催 エネチェンジさん
電力会社、ガス会社を切り替えるならエネチェンジ!
Active Support のコア拡張機能について
- 知ってた!
- Object#blank? #=> 0.blank? == false
- Object#present? #=> 0.present? == true
- Object#try #=> メソッドがなければ nil を返す ぼっち演算子(&.)でも同様のことができる
- Object#try! #=> メソッドがなければ例外を返す
- Object#deep_dup #=> ディープコピーしてくれる
- Moduleの拡張: delegate
- ref: https://railsguides.jp/active_support_core_extensions.html#delegate
- allow_nil: true よくやるぞ
- Railsのこだわり? String拡張
- "table".pluralize #=> "tables"
- "tables".singularize #=> "table"
- 他, camelize, underscore, titlizem dasherize, demodulize, deconstantize, parameterize, tableize などなど
- to_s(:currency, unit: '£')
- 12345.to_s(:delimited) #=> 12,345
- [1,2,3].sum #=> 6
- .pluck(:name) #=> とてもお世話になっているやつだ
- .merge
- .compact
- 知らなかった!
- x.presence #=> x.present? ? x : nil と同じ
- tryはブロックも渡せる、Ruby2.5 以降の #yield_self 的な使い方もできる
- Object#to_query #=> {c: 3, b: 2}.to_query #=> "b=2&c=3"
- Object#with_options #=> ref: Railsで特定の条件下で走るバリデーションを作りたい
- class_attribute #=> ref: これはMUST!ActiveSupport の Class#class_attribute を使おう!
- cattr_accessor #=> クラス変数のアクセサ
- to_date, to_time, to_datetime #=> Time.zone.parse よりも文字数少なくて便利
- 100.to_s(:percentage, precision: 0) #=> 100% *これ 0.01を1%に直してくれるのないかな?ありそう
- 123.to_s(:human_size) #=> 123 Bytes !!!知らなかった
- .without
- Hash#extract!
- Hash#stringify_keys, symbolize_keys, deep_symbolize_keys #=> キー、シンボルどちらかに寄せる
- サマリ
- ドキュメントを熟読しよう。
- RailsGuide, Ruby on Rails API は必読。
- Q: Rails以外でさくっと使いたい時どうしたらいいですか?
LTx5
Rubyでbrainfxck処理系作ってみた
- 例のアレ => Brainfuck - Wikipedia
- 実用性はゼロだがチューリング完全
- 思わぬところでbrainfxckの仕様を知ってしまったな... (プログラミングかるたで存在は知っていた)
- デバッグしんどそう
- 派生言語がたくさんある、好きに当てはめていいため
CSV出力 Viewからやるか? 他からやるか?
- CSV出力 - Viewからやるか? 他からやるか? / How to output CSV - Speaker Deck
- CSV出力は誰の責務か? => viewでやった
- Modelに書いてあるけどViewのほうがいいのでは?
views/**/index.csv.ruby
なるほど- 既存の整形処理やdecoratorがあったのでViewになった
- CSV化がどう利用されるのかに注意、ほんとはAPI化したい
Rails×Messaging API × Herokuで清宮幸太郎の成績検索BOTを作成したよ
【Otemachi.rb#10】Rails×Messaging API × Herokuで清宮幸太郎の成績検索BOTを作成したよ
- 清宮幸太郎さん: プロ野球選手さん
||=
のイディオムを覚えた時の感動を思い出した- モジュール名.メソッド名
::
はスコープ演算子request.body.read
って何? => Railsのrequestオブジェクト(自分もよくわかっていないかも...)- 最初の応答が遅いのは寝ているherokuサーバさんが起きるまでの時間?
request
とはなんだ?- Railsはサーバサイド、ブラウザを抽象化したものがrequest、ヘッダを受け取ったら全部を受け取らなくてもIOとして保持してrequestを作る ( んんん自分も不勉強でまだピンときていない... )
ぼっちの開発 3-Step(発表しました!)
- ぼっちの開発 3-Step - Speaker Deck
- 色々試行錯誤した結果、最初入っていたはずの技術要素が消し飛んでエモさで攻める話になりました
- Q: ぼっちなのになんで普通の開発フローを知っているのか?
- A: 昔2人体制の時期があった + 一時期受託業務ですごく良い体制のチームにお邪魔していたことがあったため、その経験が活きています!
- みなさん、あたたかく話聞いてくださって本当にありがとうございました!!
Rubyで始めるAtCoder
- AtCoder 日本で参加しやすいコンテスト
- https://atcoder.jp/?lang=ja
- 面白そう!!
- (ブログネタが枯渇してきたのでやらざるをえないという気持ち)
- Rubyを選んでソースコードを貼って提出する
- まず茶色ランクを目指そう(D)
- 毎週土曜9時から定期開催
まとめ
久しぶりに人前で発表、しかもRails要素0.01くらいのスライドでしたが、みなさん暖かく受け入れてくださってありがとうございました…!! また今度はちゃんとRubyもしくはRailsネタをもってリベンジしたいです。精進します!