Rubyの標準モジュール「NKF」で全角英数字を半角に変換する

こんにちは!kossyです! さて、今回はRubyの標準モジュールである「NKF」を用いて、 全角英数字や全角スペースを半角に変換する方法をブログに残してみたいと思います。 環境 Rails 6.0.2.1 Ruby 2.5.1 MacOS Mojave 方法 こんな感じのCSVファイルがあった…

rails r でターミナルからRailsのコードを実行する

こんにちは!kossyです! さて、今回はrails r コマンドでターミナルからRailsのコードを実行する時のTIPSをご紹介できればと思います。 環境 Rails 6.0.2.1 Ruby 2.5.1 MacOS Mojave クラスの継承順位を出力する 例えばRailsアプリケーションにBookモデルが…

Rubyのnet/httpsでGoogleBooksAPIを叩いてみる

こんにちは!kossyです! さて、今回はRubyの標準モジュールであるnet/httpsを使って、 GoogleBooksAPIを使う方法について、ブログに残してみたいと思います。環境 Ruby 2.6.3 Rails 6.0.2.1 MacOS Mojave GoogleBooksAPIから返却されるJSONを見てみる 下記…

ActiveRecordのfindとArrayのfind

こんにちは!kossyです! さて、今回はActiveRecordのfindとArrayのfindがどのようにして挙動を切り替えているか、 気になったので調べてみました。 ブロックの有無で分岐していた # activerecord/lib/active_record/relation/finder_methods.rb def find(*a…

ubuntu環境の日本語化

こんにちは!kossyです! さて、今回はvirtualbox + vagrant でubuntu環境を構築する際に、出力を日本語化する手順について、 ブログに残してみたいと思います。 なお、virtualbox + vagrant のダウンロードについては割愛します。 実行手順 まずはbox add …

キャメルケースの文字列をスネークケースに変換するActive Support::Inflectorの「underscore」メソッド

こんにちは!kossyです! さて、今回はキャメルケースの文字列をスネークケースに変換する「underscore」というメソッドの使い方を ブログに残してみたいと思います。 Active Support::Inflectorってなに? ActiveSupport::Inflector によると、 The Inflect…

Railsのenumで定義したシンボルを元に文字列を返すメソッドを定義する

こんにちは!kossyです! さて、今回はRailsのenumで定義したシンボルを元に文字列を返すメソッドを定義したいと思います。 enumの詳しい説明は割愛します。 実装方法 class User enum role: [:general, :admin] end Userクラスがroleというカラムを持ってい…

実務に入る前に知りたかったRails周りのことをまとめてみる

アプリケーションの設計について ・Rails API mode について Rails による API 専用アプリケーション - Railsガイド Rails5とAPIモードについての解説・エラーハンドリングについて Railsアプリケーションにおけるエラー処理(例外設計)の考え方 - Qiita …

Railsのreponseのcache-controlを上書きする

こんにちは!kossyです! さて、今回はRailsでAPIを実装する際に、responseのcache-controlを上書きする方法について ブログに残してみたいと思います。 そもそもcache-controlってなに? Cache-Control 一般ヘッダーフィールドは、リクエストとレスポンスの…

EGPとIGP

こんにちは!kossyです! さて、今回はインターネットのルーティングプロトコルであるEGPとIGPについて、 ブログに残してみたいと思います。 ルーター同士で通信して情報をやりとりするための規約 インターネットの通信の仕組みには、指定したIPアドレスへの…

yield @variable if block_given? ってなに?

こんにちは!kossyです! さて、今回は、トークンベースの認証の仕組みを提供するgemであるdevise_token_authの コードリーディングをしていた時に書かれていたある構文について、ブログに残してみたいと思います。 yield @variable if block_given? なんだ…

Rubyの標準モジュール「securerandom」を使ってトークンを作ってみた

こんにちは!kossyです! さて、今回はRubyの標準モジュールである「securerandom」を使って、 トークンを作成する手順についてブログに残してみたいと思います。 環境 Ruby 2.5.1 Rails 5.2.3 MacOS Mojave libディレクトリにtoken_generator.rbを作成 トー…

名探偵コナンの劇場版作品投票の既投票かどうかの判定はクッキーを使ってた

こんにちは!kossyです! さて、今回は普段と毛色が異なる題材なのですが、、、 kinro.ntv.co.jp大人気アニメ「名探偵コナン」の映画の放送を一般の方からの投票で決めるイベントが開催されています。 この「投票」がどうやって投票済みか否かを判断している…

docker-compose.ymlを記述する際に指定できる「expose」について

こんにちは!kossyです! さて、今回は、docker-compose.ymlを記述する際に指定できるオプションの一つである、 「expose」について、ブログに残してみたいと思います。 公式ドキュメントを見る exposeExpose ports without publishing them to the host mac…

Railsのvalidationでのlambdaの使い方

こんにちは!kossyです! さて、今回は、Railsのvalidationでのlambdaの使い方を ブログに残してみたいと思います。 後置ifでlambdaを渡す サンプルコードを晒してみます。 class User before_validation :name, presence: true if lambda { |obj| name.will…

docker-compose.ymlを記述する際に登場するtty: true ってなんだ?

こんにちは!kossyです! さて、今回はdocker-compose.ymlを記述する際に指定できるオプションの一つである、 tty: trueについてブログに残してみたいと思います。 コンテナを起動させ続けることができる docker-compose.yml内にtty: trueと記述すると、dock…

DockerfileのENVとARGの違いとは?

こんにちは!kossyです! さて、今回はDockerfileを記述する際に用いられるインストラクションの一つである、 ENVとARGの違いについてブログに残してみたいと思います。 そもそもDockerとはなんぞや?という方は、 knowledge.sakura.ad.jp 上記のサイトが参…

Cloud Storageにアプリをデプロイする際に最新のコードがすぐに反映されるようにする

こんにちは!kossyです! さて、今回はGCPのCloud Storageにgsutilを使ってアプリケーションをデプロイする際に、 最新のコードがすぐに反映されるようにする方法を ブログに残してみたいと思います。 これやらないとデプロイしても最新のコードが反映されな…

Rubyのbegin-end構文で変数を定義する

こんにちは!kossyです! さて、今回はRubyのbegin-end構文で変数を定義する方法についてブログに残してみたいと思います。 begin-end構文とは?begin-endは例外処理でよく用いられるイメージですが、例外処理以外の用途でも使うことができるようです。What …

development_secret.txtってなんだ?

こんにちは!kossyです! さて、今回はRails 6 でアプリケーションを開発している時に見つけたテキストファイルである、 「./tmp/development_secret.txt」についてブログに残してみたいと思います。 dev環境およびテスト環境の場合にsecret_key_baseを生成…

docker の コンテナやイメージを一括削除する

こんにちは!kossyです! さて、今回はdockerのコンテナとイメージを一括削除するコマンドをブログに残してみたいと思います。 コンテナを一括削除するコマンドはこちらです。 $ docker ps -aq | xargs docker rm docker ps -ap で、停止中のコンテナも含め…

RailsのAPIモードでrespond_to を使うにはMimeRespondsをincludeする必要がある

こんにちは!kossyです! さて、今回は、RailsでAPIを作成する時にrespond_toを使いたい時はあるモジュールをincludeする必要があるという話をブログに残したいと思います。 環境 Rails 6.0.2.1(API only) Ruby 2.5.1 ApplicationController.rbにMimeRespond…

AngularのAppRoutingModuleのワイルドカード(**)は一番最後に指定すべし

こんにちは!kossyです! さて、今回はAngularのAppRoutingModuleのワイルドカード(**)は一番最後に指定すべし、という備忘録をブログに残したいと思います。 初歩的なミスをしてしまう自分を戒めようと思います。笑 const routes: Routes = [ { path: '', c…

date-fnsにlocaleを指定したい

こんにちは!kossyです! さて、今回はJavaScriptの日付を扱うライブラリであるdate-fnsでlocaleを指定してformatする方法について、 ブログに残してみたいと思います。 実装手順注意することは、jaのimportの文法くらいですね。import { ja } from 'date-fn…

TypeScriptでdate-fnsを使ってみた際に遭遇したAn argument for 'format' was not provided

こんにちは!kossyです! さて、今回は、JavaScriptの日付を扱うライブラリの一つである。date-fnsを少し触ってみたので、ブログに残してみたいと思います。 引数一つだと怒られるAngularのプロジェクト内で、 format(new Date()); というコードを記述したと…

Angular8のアプリケーションにbootstrapを導入する

こんにちは!kossyです! さて、今回はJavaScriptのフレームワークの一つであるAngularに、有名なCSSライブラリであるbootstrapを導入する手順を ブログに残してみたいと思います。 環境 MacOS Mojave Angular 8.0.6 TypeScript 3.4.5 Rxjs 6.4.0 AngularCLI…

Railsで日本郵便の追跡状況を取得してみる

こんにちは!kossyです! さて、今回はnet::httpとnokogiriを使って日本郵便の追跡情報を取得してみたので、ブログに残してみたいと思います。 コード説明 lib/japan_post_client.rb # 使うライブラリをrequireしておく require 'net/https' require 'nokogi…

基本情報技術者試験に合格しました

こんにちは!kossyです! 先週の日曜日に基本情報技術者試験(FE)を受けてきました。結果は、 自己採点の結果、合格です。 午前・午後共にギリギリ6割取れていました。勉強自体は3月ごろから始めていましたが、通勤の電車内で過去問を解いたり、 テキストを読…

wheneverとgoogle-api-clientを使ってRailsのDBのデータをスプレッドシートに定期出力してみた

こんにちは!kossyです! さて、今回は、cronジョブを簡単に設定できるGem「whenever」と スプレッドシートを操作できるGem「google-api-client」を使って、 RailsのDBのデータをスプレッドシートに定期出力する方法について ブログに残してみたいと思います…

SequelProでレコードを削除しても、dependent: :destroyしている先のレコードは消えないよ

こんにちは!kossyです! www.sequelpro.com 何を当たり前なことを、、、 といったタイトルですが、開発環境で実装している時に遭遇しました。笑 なぜ意味不明なデータが出現するんや!?!?!? と30minほど悩みましたが、SequelProでレコードを削除しても…