Ruby
たまたま、DateとTimeを意図せず比較している処理があったので調べてみた。 Date同士の比較であれば日付があっていれば 等しくなるので当たり前だけど Date.new(2023, 1, 1) == Date.new(2023, 1, 1) # true これが片方が Timeの場合 Date.new(2023, 1, 1) =…
新しいPCにrbenvでRubyのインストールを試みたのですが、エラーになってしまったのですが、 あまり他でみかけない解決方法で解決したのでブログに残しておこうかと思います。 エラーの内容 エラーの内容は以下の通りでopenssl の影響でエラーになってました…
RubyKaigiから早くも1ヶ月経ってしまった。 その間に クックパッドが今年3回目の人員削減。110名を対象 を発表していた。 gamebiz.jp 業界ではかなりの衝撃があり、以前の2回ではエンジニア、デザイナは対象になっていなかったが、 今回は対象になっている。…
感想 Day3 最後日になってしまった。 今まで参加したRubyKaigiで一番良かったように思うし、 今回のRubyKaigiで知り合えた人が過去1だったように思う。 前日の続きのスタンプラリーの残りのブースには結局行かず、 聞きたいセッションと話したかった人を探し…
感想 今日はDocker Tシャツを来て参加。 中の人ではないのですが、紛らわしかったのか.. ブースで中の人ではないですよね? と聞かれてしまい。。ややこしくてすみませんという感じだった。 スタンプラリーが始まったので、回っていたが残り6箇所は明日に行…
感想 久しぶりに現地参加してみて、やっぱり実際に人とあって参加するのは楽しい。 一方的に私は知っているけど相手は私のことを知らないCommiterの方々が近くにいたりして私からは話しかけられなかったりするのだが、それはそれで楽しめる。 何よりいいのは…
久しぶりの更新です。 今年はRubyKaigiは現地での参加を予定していたのですが、8月のCOVID-19感染者数が結構跳ね上がってしまったのでリモートでの参加としてみました。 個人的な見どころとしては ブラウザでのRuby実行(WebAssembly) パフォーマンス改善 デ…
イントロ Ruby 3.0.0 preview1がリリースされました。 www.ruby-lang.org RBS、Ractorなど新しい機能が試してみたいところですね。 手順 ruby-build の アップグレード まずruby-buildのバージョンアップをしましょう。 $ brew upgrade ruby-build インスト…
イントロ RSpecの初心者向け勉強会が紹介されていました。 blog.jnito.com 勉強会の内容を動画で公開してくれています。 最近RSpecをあまり書いておらずトレンドも追えてなかったのでとても為になる内容でした。 気になった内容 テストの書くべきところ 動画…
イントロ Rubyの継承先で継承元のメソッドを単純に呼び出すにはsuperを使いますが、 継承元の別メソッドを呼び出したい場合にどうしていいのかわからなかったので調べてみました。 詳細 class A def test1(*args) puts "A#test1:args(#{args})" end def test…
概要 前回の記事でembed_callbacksというgemを紹介しました。 こちらの機能を追加したので紹介していきます。 追加した機能 メソッドがエラーになったときに処理を呼び出せる メソッドエラーになっても呼び出せる rescue これはその名の通りでrescueを設定す…
概要 以前からgemを作ってみたいと思いつつ作れてなかったので作成してみました。 methodにcallbackを追加するembed_callbacksというgemを作成しました。 探すと似たようなgemが出てくるので車輪の再発明的なものになりますが作成してみました. gemの機能 ま…
いつものようにRailsのRubyバージョンを上げていこうかと思います。 まずはruby-buildの最新化します。 $ brew upgrade ruby-build rubyをrbenvで管理しているのでrbenvで2.7.1をビルドします。 $ rbenv install 2.7.1 Rails root の.ruby-version を 2.7.1 …
前置き 「プロを目指す人のためのRuby入門」のレビューを書いてなかったので記載しておきます。 先日行ってきたRubyKaigiの中でも話題になっていた本ですね。 第2回Ruby選抜総選挙 結果発表第1位 パーフェクトRuby 161票第2位 プロを目指す人のためのRuby入…
早くもRubyKaigi 2019の動画のKeynotesが公開されていました。 迅速な対応とてもありがたいです。 www.youtube.com www.youtube.com www.youtube.com スライドをまとめているページにもリンクを作っておきます。
明日から令和ですね。 ブログ更新できていなかったので先日参加したRubyKaigi 2019のスライドのリンクをまとめてみました。 コードを書く意欲がそそられるものが多く実際に参加できてとても光栄でした。 久々に福岡にいったのですが、随分と整備されていて移…
新年あけましておめでとうございます。 2019年ももう4日です。 年始から昨年読んだ本を見直していたのと、 積読本の整理に勤しんでいました。 なかなか読む時間を作れてないなと実感するばかりです。 読まなさそうな本はどんどんmercariに出品しています。 …
今年のRubyKaigiは少し大きめのリリースがあったので残念ながら会社でお仕事してました。 Ruby 2.6.0-preview2 Released preview2がリリースされたということで早速インストールしてみました。 brewからruby-buildを入れているので以下のように設定して置き…
2015年の話なんですね。 ちょっと長いですが楽しく読めました。 個人的に以下が面白かったです。 驚き最小の法則が逆にめんどくさい 次の言語来てほしいけど誰も載ってこない Rails、Rubygemsなどのコミュニティが果たす影響はすごく大きい プロモーションが…
RSpecでCapybaraのテストをしてたのですが、 select '東京都', from: '都道府県' と記載している箇所で Capybara::Ambiguous: Ambiguous match, found 2 elements matching visible option "東京都" within #<Capybara::Node::Element tag="select" path="/html/body/div/div/div[3]/div[2]/div/div/form/div[8]/select"> のようなエラーが出てしまいました。 FactoryBot</capybara::node::element>…
文字列から文字列を探すときには正規表現をよく使ってしまいます。 Effective Rubyには =~ などのPerl風機能を避けようということが書かれています。 RuboCopでは逆に=~を使うように促されてしまってなんのこっちゃと思っていたのですが、 ruby-style-guide…
2016年はじまってもう2月になってしまいました。 遅ればせながら、あけましておめでとうございます。 昨年から相当ハードなスケジュールでなかなかブログが書けてないですが、 今年はもう少し書く時間を確保したいところ。 頑張ります。。 今日のお題は SQL…
演算周りの処理をまとめていた時にsendで呼び出せると 綺麗にリファクタリングできるかなとおもい調べていると 1.send(:'+',3) => 4 1.send(:'+=',3) NoMethodError: undefined method `+=' for 1:Fixnum NoMethodErrorになってしまったのですが、Google先生…
Kernel#Arrayは引数で受け取ったものを配列に変換してくれるメソッドなのですが、 意外に便利です。 引数で受け取ったいろいろなオブジェクトを配列にして返却してくれます。 module function Kernel.#Array (Ruby 2.2.0) 試してみると Array(nil) #=> [] Ar…
文字列の検索では正規表現をよく使いますが Railsでparamsから受け取ったワードをそのまま正規表現に突っ込んでたりして 痛い目に合いそうなコードを見つけたので、Regexp#escapeでエスケープしようよという話。 rp = Regexp.escape("$bc^") puts rp #=> \$b…
仕事が忙しくなってきました。少し大変です。 少しのアイドルがある環境で過ごしたいなと贅沢なことを考えながら、 周りからモチベーションを落とされるというよくわからない状況を奮起しながら程良く頑張っています。さて本題です。 最近カレンダーを出力し…
Ruby(Rails)で大小比較してどちらかの値と取りたい場合にどうやって書くのか という素朴な疑問なのですが、 最近私の中でのトレンドがありまして、 比較しながら検証していきたいと思うのです。 前提条件 例えば、日付型の2変数が用意されていて、小さい値を…
いや、新年早々結構忙しいです。 もうこんな時間です。早く寝ろよって感じですが、、 Rubyにちょっとは慣れてきた今日この頃です。コードレビューで面白いことを聞いたのでメモです。 実際に使えるかどうかは可読性と相談だとは思いますが、、 if-else文で戻…
Railsでバッチ処理したい時に既存の ActiveRecord::Base#findを使いたいけど、処理件数が多くなりすぎるとメモリ食い過ぎて大変。 なんてことになりそうな場合は、今まではActiveRecord::Base#connectionで直接SQL文を実行してました。 ActiveRecord::Base#c…
Arrayなどで配列を扱ってると、配列の中の一致する値を取り出したい場合があります。 下のコードを書いてコミットしたら、指摘されていいものを教えてもらったので、メモです。 array.each do |data| if data.to_i == 1 return data end end nil のように書…