Ruby

無名クラス

ある機能に関してブランチを分けて実装している際、 別ブランチで作成しているクラスのインスタンスが今のブランチで実装しているメソッドを使えるか試したいことがありました。 別ブランチをpullして持ってこようかと思いましたが、コンソール上で無名クラ…

コードリーディング部(Rack編)へ参加した

今日はTama.rbから派生した部活のコードリーディング部へ参加してきました! 今回のテーマはRackでした。 github.com 主催の@coe401_さんが準備や資料を用意してくださり、Rackがサーバーを起動する仕組みを読み解いていきました! 明日開催のコードリーディ…

Sendagaya.rbへ行った

昼休みにruby-jpのスラックを眺めていたらSendagaya.rbが今日開催されるという情報を入手し、即申し込んで参加してきました!! 以下はDoorkeeperのSendagaya.rbのページです! sendagayarb.doorkeeper.jp 初参加でも入りやすい雰囲気でとても助かりました!…

ハッシュ関数とソルト

先日あるapiを使うにあたって、ハッシュ関数とソルトを使わなければならない機会がありました。 よく分かっていなかったため調べてみました! ハッシュ関数とは ある文字列を、決まった長さの新しい文字列に変える関数です。 元の文字列が似たような値でも、…

Nerimarb#3へ行った!!

本日はNerimarbへ参加させていただきました! 今回のテーマはObjectクラスでした! みんなでるりまのObjectクラスの章を読み進めていきつつ、疑問を深掘りしてみたり、解説をしていただいたり、rubyの実装をみにいったりしていき、 気づいたことや試したこと…

社内LT会

今日は月に1度行われる社内のLT会がありました。 基本入社歴の短いメンバーはLT必須なので自分もLTをしました。 それ以外のメンバーは希望制です! LTのテーマは読んだ本について・試してみたツールについて等なんでもOKな自由な感じです。 自分の発表した…

TamaRuby会議無事おわった!

TamaRuby会議を無事終えることができました!! セッションはどれもすごく面白かったです!! 自分は受付係だったため早めの時間のセッションは聞けなかったのですが、 ツイッター上でスライドを共有してくださっていたので、これから読んでいきたいと思いま…

TokyuRuby会議へ行った

本日はTokyuRuby会議へ行ってきました! プレミアムモルツを飲みながらLTしたり聞いたりする特殊な会でした。(サントリーさんがスポンサーをしてくださり、いろんなプレモルが飲み放題だった!!) 普段カンファレンス後の懇親会でお酒を飲む時は楽しみきれな…

SQL発行されまくるスクリプト

あるデータを取得する必要があり、コンソールでスクリプトを実行しておりました。 すると、AWS RDSのProcessor load が90%を超えているというアラートが何度も鳴ってしまいましたw OPさんにも心配をさせてしまいたした。 その時のスクリプトが以下です。 ids…

find_eachで順番を指定したい

pdfの作成される順番を変えたいと思いコードをいじっておりました。 以下はpdfの作成される部分のコードの一部です。 class BatchPrintJob < ApplicationJob 略 def perform(batch_print) 略 invoices.find_each do |invoice| 略 pdf << CombinePDF.load(pdf…

FactoryBot難しい...

ジョブを実行すると、ある条件の時にレコードが更新されることをテストしたかったのですが、なかなかテストが通らないため、binding.pryを駆使してデバックしておりました。 しかし、binding.pryだときちんと値が更新されているのに、なぜかテストは落ちてお…

ActiveDecoratorを(ごく一部)読んだ

先ほどActiveDecoratorを使って定義したメソッド(を呼んでるモデルに定義したメソッド)をコントローラーで呼んだところ、エラーとなりました。 ActiveDecoratorをView以外で使う時は、ActiveDecorator のデコレーターメソッドをかましてあげる必要があるとの…

aws-sdkというgemのバージョンアップをした

昨日あるアプリに入っているasw-sdkというgemのアップデートを行いました。(まだステージングのみ) aws-sdkはAmazon S3、Amazon EC2、DynamoDB など、AWS の多くのサービス向けの Ruby クラスを提供してくれるgemです。 Amazon S3のAWS署名バーション2が201…

gem作りの練習

昨日マキさんとお話した際にgem作りの話をしました。 また、その流れで初めは小さく簡単なものから作っていき、人からのフィードバックをもらいながら改善していくのが良さそう、という話もしました。 そこで、自分もまず実用性は完全に無視してとりあえずge…

libv8というgemのインストールが失敗する

エラー内容 Ruby3系のバージョンで作られたRailsのプロジェクトを動かしたかったので、 環境構築後bundle installをしたら以下のようなエラーが出てしまいました。。。 libv8 というgemのコンパイルで失敗しているようでした。 Installing libv8 3.16.14.15 …

accepts_nested_attributes_forを使った時のrequest specでのパラメータ指定

問題 menuを作成するrequest specでパラメータ の指定の仕方がおかしかったようで、テストが落ちておりました。 menuモデルでは, accepts_nested_attributes_for :menu_images というようにmenu_imagesを子レコードとして作成するようにしておりました。 以…

GitHub内の検索

GitHub内を検索できるのは知っていたのですが、今までリポジトリを検索する為にしか活用できておりませんでした。。。 先ほど、リポジトリ検索だけでなく、コード検索もしてみたのですが、お手本にしたいコードがたーーーくさん出てきてすごく良かったのでそ…

TraceLocationというgemを使ってみた!

ツイッターを見ていたら、カルパスさんがコードリーディング用のgemを作ったという情報をgetしたので、早速試してみました!!1 以下はそのリポジトリです! github.com こちらのスライドで、どういう思いで作ったのか・どう使うのかについて書いてくださっ…

Rubykaigiの日記①(コード懇親会編)

rubykaigiのコード懇親会の中で、Rubyの標準ライブラリであるcsvライブラリにコントリビュートしましたっっw 下の画像がそのプルリクがマージされたスクショです!!! gyazo.com このプルリクを出すまでのプロセスで分からないことが多すぎ&コード懇親会来…

NKFで文字コードを変換する

csvのインポート・エクスポート処理でshift-gisをUTF-8に変換する必要がありました。 しかし、文字コードについてよくわかっておらず、色々教えてもらいました。 今回はその内容について書き留めておこうと思います!! NKFとは ものすごく古い漢字コード変…

StringクラスのメソッドについてNerima.rbで勉強した!

本日@neko314_さんが主催してくださった、Nerima.rbの第一回に参加してまいりました!! 今回は、RubyのStringクラスのメソッドについてみんなで勉強しました! 普段から使っているはずのStringクラスにも関わらず、初めて見るメソッドがたくさんありました…

読みやすい条件の書き方にする

ビューで 'Loading...' という文言を表示させる条件を、以下のように書いてしまっておりました。 - unless (@menus.include?(@menus_last) || @menus.length == 0) .page-load-status .infinite-scroll-request | Loading... 自分でもこのunless文を書くにあ…

postgresqlのセッションを切断

テストが実行できなくなってしまい、焦ることがありました。 ターミナル再起動しても相変わらずテストが実行されないままでした。 rake db:resetしようと試みてもエラーでリセットできませんでした。 しかし、ログをたどっていったところ、どうやらポスグレ…

capybaraで取得した要素の中身を確認する

テストが通らない原因を探るため、binding.pryを仕込んでデバッグをしておりました。 止まってくれたところで、 find(‘#client_check_by_id’) とすれば、その要素を取得は出来るものの、その中身を見たい!と思い、そのやり方を調べてみました。 [1] pry(#<RSpec::ExampleGroups::Nested::Nested_2>)></rspec::examplegroups::nested::nested_2>…

意味のあるテストデータの作成

FactoryBotを使ったデータ作成について基礎を理解したいと思うことが多々ありました。 Everyday Rails Rspec 第4章、「意味のあるテストデータの作成」についてまとめる機会を頂いたので、こちらに下書きを書いていきたいと思います! github.com 内容 ・フ…

Railsdmへ行った!!!

今日はRailsdmへ行ってきました!!! railsdm.github.io とっても楽しかったです!!! もし「初心者だから理解できなそう、楽しめるか不安」という人がいたら、「理解できてなくてもすっごく楽しいよ!!」と伝えたいですw ただ残念なことにRailsdmは今回…

文字列取得してDate型に変換して整形する(javascript)

datepickerの{format: 'yyyy/mm/dd'}オプションを使って、日付の表示を整形している部分があったのですが、検索実行したりリロードしたりすると、'00:00:00 +0900'という余分な部分が表示されてしまっておりました。 直したいと思い、まずtext_fieldに対して…

ネストした配列を平坦化

以下のように、whereで取得したレコードの配列をmapメソッドでアソシエーション先(1対多の多)のレコードの配列に変換したところ、配列の中に配列が入っている状態になってしまいました。 Hoge.where(name: argment).map{|r|r.fugas} その後処理を続けるため…

ransackを使った日付検索で指定した日付の前日までのデータしか取得できないのを修正

問題 ransackで oooo/oo/oo から xxxx/xx/xx までというふうに日付検索ができるようにしていたのですが、 そのままだと xxxx/xx/xx の部分の時間が00:00:00となってしまう事で、指定した日付の前日までのデータしか取得できませんでした。 2019-03-01から201…

クエリパラメータを次のアクションへ渡す

現在のアクションで持っているクエリパラメータをそのまま次のアクションに渡そうと思ったのですが、少し気をつけないと次のアクションへ渡せなかったので、その方法を書き留めておきます。 エラー内容 次のアクションにも渡したいクエリパラメータがある時…