下級エンジニアの綴

新しく発見したことを綴っていこうと思っています。夢はでっかく上級エンジニアになることです。

ruby

rubyのbundleでgemfileのパスでハマったのでメモ

どうもやんてらです。bundleを行う時にGemfileが上手く読み込めなかったので、その時周りの方に教えて頂いたメモになります。 このような感じでGemfileを置いてて、 root@dda622750a80:/app# ls -al Gemfile -rw-rw-r-- 1 1001 1001 3901 Nov 16 09:38 Gemfi…

rubyのcountについてメモ

countを使わなくて失敗したので戒めを含めメモ。 Active Recordのデータ(配列)に対して sizeを使えば配列を全てオンメモリで扱って、結果を返す。 countはを使えばdbに投げて結果を返してくれる。 ↑のことはわかっていたけど、物理的な部分を理解しているつ…

Rspecでインスタンスメソッドのテストに苦労したのでメモ

今回はRspecでメソッドのテストをしたかったのですが、メソッド内で定義しているメソッド先の処理のテストは記述したくなかったので、それを解決したメモになります。 rubyのコード # 今回テストしたかったのはTest1のexecuteメソッドになります Class Test1…

railsのhash#tryでちょっと躓いたのでメモ

railsでhashにtryをかけているとエラーが出たので、その時に調べた内容をメモ。(一度先輩に教えてもらった気がするのですが完全に忘れてましたorz 本題 この書き方だとhashにkeyが存在する時は問題無いのですが、 { name: 'yantera' }.try(:fetch, :name) # …

rubyの特異メソッドのprivateについて気になったから調べたのでメモ

特異メソッドでprivateなメソッドを呼ぶ方法 sendを使う privateの特異メソッド、privateのインスタンスメソッドを関係なく呼べる 最終手段な感じがするので、あまり推奨できないと思った class A def self.hoge A.new.send(:fuga) end def self.aaa A.send(…

rubyの多次元hashで指定したkeyを削除する時、ActiveSupportのexceptを使うと便利だったのでメモ

require 'active_support' h = { a: 1, b: 2, c: 3, d: { e: 4, f: { g: 5 }}} p h.except(:a) // {:b=>2, :c=>3, :d=>{:e=>4, :f=>{:g=>5}} p h // {:a=>1, :b=>2, :c=>3, :d=>{:e=>4, :f=>{:g=>5}}} p h[:d].except!(:f) // {:e=>4} p h // {:a=>1, :b=>2,…

rubyのnilを0にしたいときに調べたのでメモ

数値を扱っているときにnilを使いたくないので、調べたらいい感じに行けそうだったのでメモ。 nil.nil? # true nil.to_i # 0 nil.to_i.nil? # false nil.to_s # "" nil.to_s.nil? # false nil.to_s.empty # true rubyって面白いですね。