Madogiwa Blog

主に技術系の学習メモに使っていきます。

Ruby

Rubyで作るオレオレWebフレームワーク「第3回 クエリ文字列を含んだGETに対応したRouting機能作る🛣」

RubyでオレオレWebフレームワークを作っているのですが、だいぶ形になってきたので知識の整理がてら色々まとめてみる✍ 今回は第3回目です 第2回 GETに対応したRouting機能を作るはこちら https://madogiwa0124.hatenablog.com/entry/2019/09/01/233842 今回…

Rubyで作るオレオレWebフレームワーク「第2回 GETに対応したRouting機能を作る🛣」

RubyでオレオレWebフレームワークを作っているのですが、だいぶ形になってきたので知識の整理がてら色々まとめてみる✍ 今回は第二回目です✌️ 第1回 Hello World はこちら https://madogiwa0124.hatenablog.com/entry/2019/08/25/181608 今回のゴール まずはR…

Rubyで作るオレオレWebフレームワーク「第1回 Hello World 🌏」

RubyでオレオレWebフレームワークを作っているのですが、だいぶ形になってきたので知識の整理がてら色々まとめてみる✍ 今回のゴール Rackを使ってWEBrickとコードを繋ぐ WEBrickとRackを使ってレスポンスを返す おわりに 参考 今回のゴール 最終的には、CRU…

Ruby: gem `amatch` を使って文字列同士の類似度を測る👩‍🔬

こんにちは、まどぎわです(・∀・) rubyで文字の類似度とか測るgemとか無いかなーと探してたらamatchというgemを見つけたので、使い方とかをメモしておきます✍ amatchとは? 使い方 実際に解析してみた パフォーマンス おわりに 参考 amatchとは? This is a …

Ruby: SinatraのHTMLが生成され画面に返却されるまでのコードを読んでみた。

Sinatraコールドリーディングも今回で最終回です 今回はerbでテンプレートを指定して実行後に実際にブラウザに返却されるresponse bodyが生成されるまでを見ていきます! 前回までの内容はこちら、以前の記事を前提として書いてますので1回目、2回目を読んで…

Ruby: SinatraのWeb Serverが起動後にURLにアクセスして処理が実行されるまでのコードを読んでみた。

Sinatraコードリーディングの第二回目です 前回は、ruby app.rb実行後にServerが起動するまでのコードを読んでみましたが、今回はServerが起動したあとに特定のURLにアクセス際にapp.rbで定義した処理が実行されるまで、どのような動きになっているのかを追…

Ruby: Sinatraの`ruby app.rb`からWeb Serverが起動するまでのコードを読んでみた。

今まで暗黙的に使ってたRailsのコードをちゃんと読もうと思ったのですが、最初からRailsのコードを読んでいくと深みにはまりそうだったので、まずはシンプルなsinatraの実装を読んでみようということで、Sinatra(ver 2.0.5)のWeb Serverが起動するまでのコー…

Ruby: OpenStructが便利な気がしたので使い方とかメモ

最近ruby標準のOpenStructライブラリが便利だなと思ったので、使い方とかメモ✍ OpenStructとは? OpenStructはrubyの標準ライブラリです。マニュアルには下記のように記載されてます。 要素を動的に追加・削除できる手軽な構造体を提供するクラスです。 Open…

v3.0が出たのでfeedjiraがどう動いているか、なんとなくコードを読んでみた🦖

いろいろなファイル形式のパース処理を実装するときに便利なfeedjiraですが、最近メジャーバージョンがあがってv3.0.0になりました github.com feedjiraを使ってxmlをパースする処理のサンプルは下記の通りです。 xml = HTTParty.get(url).body feed = Feedj…

ruby2.7の新機能メソッド参照演算子を使ってみよう

5/30にRuby 2.7.0-preview1がリリースされましたね www.ruby-lang.org 2.7の主要な新機能としては下記が記載されています Pattern Matching メソッド参照演算子 .: 開始値省略範囲式 ..100 番号指定パラメータ @1 Enumerable#tally 今回は、中でもメソッド参…

rails勉強BotのRailsのバージョンを6.0.0.rc1にアップグレードしました 🎉

みなさん、こんばんは。まどぎわです(・∀・) 運用しているrails勉強Botのrailsのバージョンを5.2.3から6.0.0.rc1にアップグレードしました twitter.com これでrails 6の予習がはかどりますね!! 今回は、rails 5.2.3からrails 6.0.0.rc1へのアップグレード手…

Rubyで特定の条件を満たすまで待機(Sleep)する

はじめに 非同期でAPIにPOSTを投げて、データベースにレコードが作成されてからテストを始めたいみたいなときに、単純にsleep 1みたいなことをやってしまうとテスト実行環境のパフォーマンスによって落ちてしまう可能性があり、あまり好ましくないですよね …

cronの読み方をいつも忘れるので、いい感じにParseするgemを作ってみた💎

みなさん、こんにちは。まどぎわです(・∀・) いつもcronの読み方を忘れてしまい検索して調べて、書くのが面倒くさかったので、いい感じにParseして表示してくれるgemを作って公開しました‍♂️ cronとは? cron とは、ジョブ(スクリプト)を自動実行するため…

sidekiq pro / enterpriseのwikiを読んだので気になった機能の概要をMEMO✍

今回はタイトル通り、sidekiq pro / enterpriseのwikiを読んだので、忘れないように気になった機能の概要をメモしておきます✍ ⚠私が拙い英語力 + 技術力で理解した内容のMEMOです。内容が間違っている可能性があるので、注意してください。⚠ 前提事項 sideki…

Sidekiqがどうやって動いているのか、コードを読んで概要を掴めた気がしたのでメモしてみる

みなさん、こんにちは。まどぎわです。 rubyで非同期処理やるときのデファクトスタンダード的なgemsidekiqのコードを読んで、概要が割とつかめた気がしてきたので、どういう感じで動いてるか自分の理解の範囲でメモしてみました github.com sidekiqの機能と…

RubyKaigi 2019 Cookpad Daily Ruby Puzzlesを解いてみたので自分の解答をメモ

みなさん、こんにちは。まどぎわです(・∀・) RubyKaigiでCookpadさんのブースで出題されていたRuby Puzzleを、Ruby Kaigi中に楽しくやっていたので、 解答も下記で公開されたので、自分の解答をメモしておきます。 techlife.cookpad.com Day 1 Day 2 Day 3 E…

rails勉強botでActionViewのメソッドが呟かれるようになりました🎉

みなさん、こんばんは。 昨日までrubykaigi2019で福岡に行ってたまどぎわです 表題の通り、rails勉強botでActionViewのメソッドがつぶやかれるようになりました つぶやくClassにActionViewが追加されましたView周りのメソッド意外と忘れがちなので、気になる…

ピュアRubyでAtomも対応したRSS Parserを作ってみたMEMO

みなさん、こんにちは(・∀・) rubyの標準RSSライブラリが思ったよりも高機能でびっくりしたので、gemを使わずにAtomとRssのParserを作ってみたので、そのへんのやり方をメモしておきますm( )m Ruby標準のRSSライブラリ 標準ライブラリを使用する場合は、下記…

railsとVueを使って無限スクロール機能を実装するMEMO🌀

自分が作っているSPAっぽいrailsのサービスでrailsとVueで無限スクロール∞を作ったので、そのやり方をメモしておきますm( )m つくるもの 使うもの 実際のコード View Controller Model おわりに 参考 つくるもの 下記のようにスクロール時にAPIでデータを取…

rails: Rssフィードの作り方MEMO

最近、railsでrssフィードを作ったので、そのへんのやり方をメモしておきますm( )m 作るもの 実際のコード 参考 作るもの 今回は、Rssフィード(Feed)とそれに紐づく記事(Entry)を元にRSSフィードを作成します。 イメージは/feeds/id.rssにアクセスした際に下…

railsのViewからVueの単一ファイルコンポーネントへモデルのインスタンスを受け渡すMEMO

railsのviewからVueの単一ファイルコンポーネントへモデルのインスタンスをいい感じに渡す方法を模索して、結構ハマってたのですが、自分なりに落ち着いたのでやり方をメモしておきます✍ 今回やりたかったこと どうやったか 参考 今回やりたかったこと やり…

railsとruby標準ライブラリで作るRSSリーダー的なやつの作り方Memo📝

はじめに 作るもの 使うもの 作り方 モデルを作る RSSを読み込んでParseする エントリーを取得して保存する 保存したエントリーを表示する おわりに 参考 はじめに みなさん、こんばんは。まどぎわです(・∀・) rubyの標準ライブラリにRSS用のライブラリがあ…

FactoryBotでtrait付きの関連(Association)を定義する

こんにちは、まどぎわです(・∀・) 今回はFactoryBotでtrait付きの関連(Association)を定義する方法を知ったのでメモしておきます✍ 前提: Quizの正解数ランキングを集計する処理の検証 trait付きの関連(Association)を定義してリファクタリング 参考 前提: Qu…

MeCabとRubyで形態素解析をやってみる👩‍🔬

今回は、MeCabを使って形態素解析を行ってみたので、やり方とかをメモしておきます✍ MeCabとは? MeCabは 京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所 共同研究ユニットプロジェクトを通じて開発されたオープンソース 形態…

minimagickで生成した画像をDBに保存したときに`ArgumentError (invalid byte sequence in UTF-8)`が発生したときの対処法

minimagickを最近ちょっと使っているのですが、合成した画像を保存する際に、めちゃめちゃハマったので対応方法をメモしておきますφ(・・ 事象 解決策 参考 事象 画像に文字を合成してMiniMagick::Imageのインスタンスを返すImageBuilder::PostThumbnail.build…

RubyonRails:whereでサブクエリを使って効率よく対象を絞って取得する方法👀

みなさん、こんにちは。まどぎわです(・∀・) 今回は、ちょっと複雑な条件をサブクエリを使って効率よく取得する方法について書こうと思います✍ 今回のケース 対応案を考えてみる 公開中の投稿を変数に入れて紐づくコメントを取得する(いまいち) pluckを使っ…

railsの勉強のためのTwitterBotをリリースしました📢

みなさん、こんばんは。まどぎわです(・∀・) 本日、Rails勉強BotというTwitterBotをリリースしました! railsを勉強している人には役に立つと思うので、この記事で使い方など紹介します✨ rails勉強Botとは? rails勉強Botの活用方法 どうやって作ってるの? …

RubyOnRails:FormObjectを使って複雑なフォームの処理を良い感じに実装するメモ✍

みなさん、こんにちは!まどぎわです(・∀・) 今回は、Railsのデザインパターン(?)の一つのFormObjectについて学んだので、使い方とかをメモしておきます✍ FormObjectってなに? FormObjectとは、ActiveModelをincludeしたClassにフォームで扱うプロパティをも…

herokuとrubyでゴミ出しを通知するLINE BOTを作ってみた🔔

みなさんこんにちは、まどぎわです(・∀・) 今回は、いつも忘れてしまっていたので、毎日明日出せるゴミを通知してくれるLINE BOT作ってみました やってみたら意外と簡単に出来たので手順等をメモしておきます LineBotの作り方 流れは下記のような感じです Li…

【Rails】Webpackerを使ってRailsにフロントエンド開発環境を作ってみた

みなさん、こんにちは。まどぎわです(・∀・) 今日は、RailsアプリにWebpackerを使って、フロントエンド環境を整えて少し開発してみたので、そのあたりをブログに整理しておこうと思います WebPackerとは? 今回やったこと Webpackerの導入手順 フロントエン…