アクトインディ開発者ブログ

子供とお出かけ情報「いこーよ」を運営する、アクトインディ株式会社の開発者ブログです

ruby

VSCode の Jupyter で Ruby を使う

morishitaです。 今回は小ネタを1つ。 VSCode の Jupyter 拡張は手軽に Jupyter Notebook が使えて便利です。 Python さえインストールされていれば、必要なライブラリがインストールされていなくても拡張子 .ipynb の Notebook ファイルを開いたときにダイ…

Rails の入力フォームのエラー表示のカスタマイズ

morishitaです。 Web アプリケーションではユーザの入力を求めるために入力フォームを実装することがあります。 HTML の <form> や <input>、<select> タグなどを使ってテキストボックスやラジオボタン、セレクトボックスなどで構成する UI ですね。 入力フォームの例 Rails では</select></form>…

VCR 設定 Tips

VCRのちょっと便利な設定を紹介します。

失敗事例の共有。テストが実行できていないのにCI/CDが通ってリリースしてしまった話

はじめまして アクトインディでWebエンジニア職として採用されて4ヶ月目。 つい最近試用期間が終了して、正式に正社員になったばかりの s4na です。 今回は私の失敗事例を共有させていただきます。 はじまりはリリース後のふとした違和感でした。 最初にその…

時刻の扱いでミスしたので懺悔を

こんにちは!エンジニアのkanekoです。 私はタイムゾーンの考慮に毎回苦戦しています。 そして、最近やらかしが発覚したので反省を書きます。 プロローグ:サービスのデフォルトタイムゾーン 私はいこーよで買えるWEBチケットの商品取り扱いプロダクトの開発…

Pronto を Github Action で実行する

morishitaです。 rubocop や brakeman などの静的コード解析ツールを Prontoで実行するとPull Request にコメントで指摘されるので便利です。というのは、以前、キエンが紹介しました。 tech.actindi.net このときは、AWSの Lambda と CodeBuild で実行して…

Ruby 2.7がリリースされましたね!

morishitaです。 年末もだいぶ押し迫ってきました。 当社も今日が2019年の仕事納めです。 最近、仕事でRubyを書いていない私ですが、今年の最後はRubyの話題で締めくくろうと思います。 Ruby 2.7 リリース ! 今年も年末恒例のRubyの新バージョンがリリースさ…

Rubyどっちが速い?

morishitaです。 先日、Rubocop Performance の速度比較について3回に分けて書きました。 tech.actindi.net tech.actindi.net tech.actindi.net どんな言語でも多かれ少なかれあることですが、Rubyでも同じ結果を得るのに複数の実装方法があり、読みやすさ、…

Rubocop Performanceを測ってみた。後編

morishitaです。 前々回、前回から続くrubocop-performanceの指摘事項について盲従せずに確認してみるシリーズの最終回です。 前編、中編はこちらです。 tech.actindi.net tech.actindi.net 計測について 計測には BenchmarkDriver を利用しました。 Rubocop…

Rubocop Performanceを測ってみた。中編

morishitaです。 前回のエントリーの続き、rubocop-performanceの指摘事項について盲従せずに確認してみるシリーズの2回目です。 前編はこちら。 tech.actindi.net 計測について 計測には BenchmarkDriver を利用しました。 Rubocopのドキュメントに bad と…

Rubocop Performanceを測ってみた。前編

morishitaです。 以前、弊社のWebエンジニアキエンが次のエントリで紹介した prontoによる自動レビューですが、今ではほかのRailsアプリケーションにも導入して使っています。 tech.actindi.net うっかりしたコードを書くと容赦のない指摘コメントが付きます…

いこーよにWebチケットサービスをリリースしました

こんにちは、nakamuraです。もはや2ヶ月前ほどになりますが、タイトルの通り、いこーよでWebチケットが購入できるようになりました。リリース当初はまだ未実装だった機能もどんどんリリースされ、これからもますます便利になっていくサービスですので、ぜひ…

VCRでWeb APIのモックを楽しよう!

morishitaです。 最近、Stripeを利用した決済処理の実装をしていました。 tech.actindi.net tech.actindi.net サーバーサイド(Rails)でStripe APIを利用しており、そのテストの実装にvcrを利用しました。 以前から使っていましたが、改めて便利だと思った…

Simplecovで一部クラスでカバレッジが計測されない場合の解決方法

morishitaです。 アクトインディではRailsアプリケーションのテストをRSpecで書いています。 そして、テストカバレッジをSimpleCovを使って計測しています。 何故かカバレッジが計測できないクラスがあったのですが、計測できるように解決した件を紹介します…

Active Flagで効率的にフラグを実装する

morishitaです。 今回はActive FlagというGemを紹介します。 このGemはActiveRecordのモデルでBIt Arrayなカラムを扱いやすくしてくれます。 github.com こういう要件ってありますよね? ON/OFFできるユーザ設定をたくさん持たせたい 選択肢を複数選択できる…

RubyKaigi 2019に参加しました

こんにちは、kanekoです。2018年の秋からアルバイトとして勤めていましたが、この4月に正式に社員としてジョインしました!そしてこれがはじめてのエントリーです。 記念すべきファーストエントリーは2019年4月18日〜20日に福岡国際会議場で開催されたRubyKa…

Serverless Framework Jets Rubyを触ってみました

こんにちは。Webエンジニアのnakamuraです。 Serveless Frameworkを勉強するにあたって、Ruby製のサーバーレスフレームワークJetsを使ってみました。 サーバーレスフレームワークと言っても、どこから始めていったらいいのかわからなかったので、Railsライク…

いこレポのRailsを5.1.2から5.2.2にアップグレードしました

morishitaです。 Rails 6のリリースも見えてきたので、やっといこレポのRailsをアップグレードしました。 具体的には、Rails 5.1.2 → 5.2.2 のアップグレードを実施しました。それについて紹介します。 アップグレードまでの道のり アップグレードはセオリー…

Webど素人のSierがWebエンジニアになんとかなれた話

Webエンジニアのnakamuraです。 今回はタイトルにもあります通りWebのことなんてHTMLぐらいしかしらなかったメーカー系のSierだった僕がどのような経緯でWebエンジニアになったかを紹介したいと思います。 これから、Webエンジニアになりたいと思っている人…

Rubyの文字列連結、最速は?

morishitaです。 先日、文字列を繰り返し結合するようなコードを書いていました。 文字列の連結するのに StringIO を利用していました。 イメージとしてはこんな感じですね。 io = String.new io.write '文字列' io.write '文字列' # 〜中略: たくさんの繰り…

HABTMのテーブル作成方法

こんにちは、endoです。 今回は「HABTM」のテーブル作成の方法です。 「has_and__belongs_to_many」の多対多の関係性を頭文字で略語で表示しているものです。 発音はなんて発音されているのでしょうか。 自分は「ハブトゥム」って読んでいますが、どんな呼び…

メールの Subject が読めない

こんにちは、tahara です。 Rails でメールを送信するとログに次のような感じで出力されますよね。 Sent mail to user@example.com (8.6ms) Date: Mon, 03 Oct 2016 14:32:16 +0900 To: user@example.com Message-ID: <57f1ed60d1544_656931b0dc404e7@yarn.m…

RubyKaigi2016 3日目レポート

こんにちは、endoです。 3日目のレポートになります。 ホテルの感想 まずはホテルの感想から始めます。 食堂が刑務所みたいな雰囲気を感じ、個人的には好きでした。 初日はwifiが繋がらない部屋に当たり、すぐさまフロントに電話をして部屋の移動を願い出ま…

RubyKaigi2016 2日目レポート

こんにちは、kawaguchiです。 2日目レポートをお送りいたします。 開場直後、企業ブースの様子 rubykaigiのスポンサーになった企業は、企業ブースという部屋で自社の宣伝ができます。 11時くらい以降に行くと企業の担当者がいらっしゃるので話をすることがで…

RubyKaigi初日レポート

こんにちは、endoです。 今回は「RubyKaigi2016」に参加したレポートになります。 当社では、RubyKaigiの費用の「チケット代」「交通費」「宿泊費」「懇親会」は全て会社で負担していただきました。 このような対応をしていただいた会社と、出張している間に…

iko-yo.netをruby2.3.1にアップグレードしました

kawaguchiです。 本番サーバのRubyを2.1.0から2.3.1にアップグレードしたことで変わったことについて書いていきます。 CPU 昼間はdeployによる変動が大きいので夜間の時間帯を切り取っています。 アクセス解析を見たところ、比較した時間帯のアクセスは同じ…

Rubyでなにもしない

こんにちは、chibaです! 最近、文字列を場合に応じてUTF-8(デフォルト)と、sjisに切り換えて文字を生成したいということがありました。 自分としては、 "こんにちは".send(if sjis? then :tosjis else なにもしない end) と書きたかったのですが、Rubyでなに…

CMYK

こんにちは!! tahara です。 今回は Lisp on Rails はお休みで、Ruby on Rails の Paperclip の話題です。 IE で RGB の画像は表示できますが、CMYK の画像は表示できません。 CMYK から RGB に変換する手もありますが、変換時に結構色が変ってしまいます。 …

テストを通らないリリースを止めるライブラリ

昼にキリンフリーを飲むと機嫌が良くなる火曜日担当のkomagataです。 rspecのテストが通らないとデプロイを止めてしまうcapistranoのレシピのgemを作りました。 showstopper 0.1.0 ShowStopper is capistrano recipe that stop deploy when rspec is red. イ…