Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに みなさんこんにちは! この記事は「必要最小限の努力で最大限実戦で使える知識を提供するRSpec入門記事」、略して「使えるRSpec入門」の第3回です。 今回はRSpecのモックを使ったテストについて説明します。 これまでモックを全く使ったことがない人でもわかるように丁寧に説明していくつもりです。 また、これまでの回と同様、個人的に使用頻度が低いと思っている内容についてはバッサリ説明を省きます。 ただし、第1回や第2回に比べるとテストコードが少し複雑になって、仕組みや動きを想像するのがちょっと難しいかもしれません。 ぱっと頭に入
僕はRubyで開発をする時は毎回Pryを使うくらいの熱狂的Pryユーザーだったのだが、PryはGemfileに書いてないと binding.pry できなくて不便。任意のgemをdefault gem化するgem default コマンドも作ったのだが、これをやるのすら面倒だと思っていた。 ある日、nobuさんがRubyに binding.irb という機能をいれた。Pryがdefault gemになるのを待つよりPryで僕が使う機能をIRBに全部移植してしまった方が早いのではないかと思い、4年前からPryの機能の移植活動を始め、今日僕がよく使う機能を全て移植し終えた。 その記念に、この記事ではIRBのPry互換の機能を紹介する。昔 今更聞けないpryの使い方と便利プラグイン集 という記事を書いたんだけど、この中で僕が毎日のように使うコマンドは全てIRBに移植したので、それを紹介する本稿を
今日 Ruby Hacking Challenge in Hamada.rb に参加したときに ruby_jard という Ruby のデバッグツールを教えてもらいました。 これがかなり凄まじくすごかったのでちょっとまとめてみます。 ruby_jard とは ruby_jard とは Ruby のコードをデバッグするツールになります。 ruby_jard | Just another ruby debugger. Provide a better experience while debugging Ruby rubyjard.org 立ち位置としては byebug のようなデバッグツールになっており、コード上で jard というメソッドを呼び出すとそのタイミングでプロセスが停止して、コンソール上から Ruby のコードを実行できるような形になっています。 実際にどういう形でデバッグするの
algoliaとは Products to accelerate search and discovery experiences across any device and platform. algoliaとは全文検索エンジンサービスです。「algoliaサーバにブログやドキュメントなどのコンテンツデータをアップすると、そのデータを全文検索するAPIを利用できる」といった感じのものです。 例を挙げると、Vue, React, Webpack, babel などの公式ドキュメントにある検索機能が、algoliaのDocSearchという機能によって実現されています。 今回は、このalgoliaを使ってブログに全文検索を実装した方法をまとめてみます。 手順 algoliaのフリーアカウントを取得する jekyll-algoliaを使い、ブログコンテンツをalgoliaサーバにアップする a
こちらの記事は翻訳記事となります。 原著者の許諾を得て翻訳・公開しております。 英語記事: How to Write Fast Code in Ruby on Rails原文公開日: 2019/10/08著者: Gannon McGibbonURL: https://engineering.shopify.com/blogs/engineering/write-fast-code-ruby-rails はじめにShopifyでは、ほとんどのプロジェクトの開発フレームワークにRuby on Railsを使用しています。 RailsとRubyはともにパフォーマンスに対するスティグマ(偏見)が存在します。 多くの個人や企業が、Rails以外での解決方法を探しています。 しかし一方で、私たちShopifyではRuby on Railsを採用して、毎分何百万ものリクエスト(requests per
これは 日本情報クリエイト Engineers Advent Calendar 2016による1日目の記事になります。 発起人ということで、初日を飾らせていただきました。 今回はタイトル通りに速攻で構築したいので、管理画面用のライブラリを利用して開発していきます。 RailsではActiveAdminという超絶便利Gemが存在するのですが、Laravelは管理画面系のライブラリが多数ありますので、選定から入ります。 ※ ちなみに日本情報クリエイトではLaravelで開発してません。布教中です。 ※ cakephpでの開発を主としていますので、興味の有る方は是非ご相談下さい! ライブラリの選定 選定基準は、 1. 更新が頻繁である 2. githubのstar数 3. 機能数 4. ドキュメントの充実 5. 速攻で出来る! を元に選定していきます。 調査 2016/11/30の情報です。 名
Deviseというgemのomniauthableを利用して、いろんなOAuth提供元サービスと連携orそのサービスを用いたログインを実現する方法。 こういうことやりたい人結構いるんじゃないかと思って、Wantedlyで実際にやってみた経験を大公開!! Gemのインストール deviseと各providerのomniauth関連Gemをインストール gem 'devise' gem 'omniauth' gem 'omniauth-facebook' gem 'omniauth-github' gem 'omniauth-google-oauth2' gem 'omniauth-hatena' gem 'omniauth-linkedin' gem 'omniauth-mixi' gem 'omniauth-twitter' とりあえず、omniauth-'provider'でググって出て
deviseはRailsアプリに認証機能を提供してくれる素晴らしいプラグインです。 先日、deviseを使ったアプリケーションで「アカウントロック機能をつけれないか?」という要望を受け、ちょっとググッたのですが、具体的な例があんまり見つからなかったので、書いておきます。 ってか、ほとんどdeviseの機能を使っただけで、エントリにするほどのことでもないかもしれませんが、ま、私の備忘録も兼ねているので。 カラムの追加 Deviseのインストール時にUsersテーブルから作るのでしたら create_table :users do |t| t.database_authenticatable t.confirmable t.timestamps end ってな感じで書けるのですが、すでにUsersテーブルは存在しているしなぁと思って、アカウントロックに必要なカラムだけadd_columnすれば
ピクスタ開発部で毎日ヒィヒィ言いながらエンジニアをやっております @muramurasan です。 今回はPIXTAのとあるリポジトリにおいて、未使用のメソッドを削除しようとした際、gemを組み合わせることで、効率的かつ安全に削除することができたという話をしたいと思います。 よくやる方式 外部の勉強会などで、「未使用のメソッドを削除する際にどうしているか?」ということを聞いた際、よく聞くのが「未使用らしきコードを見つけ次第、ロギングを行うメソッド呼び出しを挟み込んでいく」というものでした。 この方式は、動的なメソッド呼び出しにも当然対応できますし、お手軽なので、一般的に好まれているようです。 問題点 ただし、この方式では以下の問題点があると私は考えています。 そもそも、未使用らしいメソッドを見つけるのが大変 プロダクションコードを汚してしまう これらの問題を解決するために、PIXTAでは
タイトル通り、デプロイまでの流れをまとめました。 環境 ・ruby v2.2.4 ・rails v4.2.5 ・OS:amazon linux 準備 su yum update -y yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison git とりあえずapacheの導入 yum install httpd httpd-devel curl-devel 自動起動の設定。 chkconfig /etc/init.d/httpd chkconfig httpd on Apacheを起動。 service httpd start これで一応apa
Shibuya.rbは、渋谷近郊のRubyが好きだったり、 Rubyの周辺技術が気になっている人のための地域Rubyistコミュニティです 内容 決まったテーマやセッションは特にありません LT希望者がいれば発表してもらい、それ以外は自由です。 参加者それぞれが気になっているテーマでディスカッションできたら面白いかなと考えています 最近気になっているgemや、ソースコードリーディングしたいgem、るびま記事で気になった部分などをお持ちいただくと良いかもしれません :) 突発LTは大歓迎ですが、事前にお知らせ頂けると助かります 「こういうのやりたい」や「こういう風にやろうよ」など、 ぜひネタやご意見をお持ちください 終了後、お時間がある方は近場のお店にご飯を食べに行きましょう ご意見がありましたらコメントお願いします 会場について 飲食は程々にお願いします。 ゴミはお持ち帰りください。 プロ
Railsプロジェクトでグラフ描画用のライブラリ「Chartkick」を使用する手順をまとめました。 Railsでグラフを描画する Railsでグラフを描画する場合、「lazy_high_chart」「Chartkick」「Gruff」などのライブラリを利用することができます。 Ruby on Rails で使えるグラフ・チャート用ライブラリまとめ | EasyRamble 今回は、比較的簡単そうな「Chartkick」を使用してみました。 Chartkick Chartkickの使用手順 Gemfileを編集する JavaScriptのライブラリを読み込む グラフ描画用のデータを準備する ヘルパーメソッドでグラフを描画する 1. Gemfileを編集する Gemfileにgem 'chartkick'を追加します。
こんにちは、hachi8833です。 今回はrbenvを使ってRails 5のrails newを実行できるまでの環境づくりについてメモします。 以前のTechRacho記事「Rails4でサイト構築をする – Rails環境構築編」ではrvmを使いましたが、今回はBPS Webチームでも主流のrbenvにします。 1. rbenvとruby-buildをインストールする rbenv 複数バージョンのRubyをインストールして簡単に切り替えるソフトウェアです。 ruby-build rbenvのプラグインで、さまざまなバージョンのRubyの取得元が保存されています。新しいバージョンのRubyがリリースされるとruby-buildも更新されるので、これを取得することで新しいバージョンのRubyをrbenvで簡単にインストールできるようになります。 詳しくは本家Readmeにすべて書いてありま
wicked_pdfという、HTMLをPDFに変換してくれる便利gemがあるのですが、導入の際に「ローカルで出力されてもサーバ上だと出力されない!」「画像が表示されない!」というようなつまづきポイントがいくつかあったので、はまりどころメモ。 wkhtmltopdfのパス指定問題 まさかのインストール直後にはまりました。 はまったところはconfig/initializers/wicked_pdf.rb内に記載するwkhtmltopdfのパス指定。 wkhtmktopdfというのはHTMLをPDFに変換してくれるツールです。 wicked_pdfはwkhtmktopdfのラッパーなので、wkhtmktopdfもインストールする必要があります。 wkhtmktopdfのプロジェクトページはこちら ひとまずwicked_pdfにある「Installation」の項目を見ながら進めます。 Gemf
目的 RMagick を Windows にインストールすることが目的です。筆者のインストール実績は Windows 7 / Windows 10 に対してあります。 RMagick が特別なのは以下の点です。 C 言語で実装されたネイティブコードを含んでいる。 ImageMagick という画像編集用ソフトウェアを使っている。 従って、以下が必要になります。 DEVELOPMENT KIT をセットアップすること。 ImageMagick をインストールすること。 手順 1. DEVELOPMENT KIT をセットアップする わからない人はこちら。 2. ImageMagick をインストールする バージョンの選択に注意すること。 RMagick 2.16.0 の時点では ImageMagick 7 系に未対応であり、ImageMagick 6 系を入れる必要がある。 dll 版を使用
Railsアプリで検索機能を実装するケースは非常に多いと思います。 簡単な検索であればwhereとLIKEを使って書けますし、やや複雑なものもeverywhereが便利ですが、ここではもっと複雑な条件の組み合わせを実装する時に便利なransackを紹介します。 基本 searchメソッドで条件を指定し、resultメソッドで結果を返します。 resutはActiveRecord::Relationを返すので、SQLは普通のActiveRecord同様遅延評価されますし、さらにwhereを繋げたり、kaminariでページングしたりすることもできます。また、to_sqlで発行されるSQLを確認することもできます。 もう少し詳しく書くと、searchはModelまたはActiveRecord::RelationをレシーバにしてRansack:Searchを返し、Ransack:search#r
rails始めた頃から知っていたら幸せだったな的な、tipsをまとめてみました。 有名どころのgemでもediterの設定してちゃんと使っている人意外といないと思うので、 お役に立てたらうれしいです。 コンソールを使いやすく gem "interactive_editor" REPL上でediterを呼び出して、書き込み実行できる。 そのSession内であれば前書いたものが残る。 コンソールで直接書くより、シンタックスやスニペットが使えて便利 gem "pry-rails" デバッグ用のgemでpryは有名ですが、.pryrc設定しておくとちょい楽になります。 ↓公開されているやつを参考に、コンソールで簡単にベンチマーク図ったり、コマンドの省略系を定義しておいたり、 コンソールで楽する設定を詰めておきましょう。
こんにちは、バックエンドエンジニアのjoeです。主にAPIを担当しています。 VASILYのAPIでは、速度向上のためにModelオブジェクトをキャッシュしています。 最近、Modelキャッシュの仕組みを実装したので、その実装方法を紹介します。また、既存ライブラリとの比較についても書きたいと思います。 Modelキャッシュとは Modelキャッシュを簡単に言うと、下記の結果をキャッシュすることです。 > Item.find(1) => #<Item:0x007fdfe398a678> このように、1レコード単位のActiveRecordをキャッシュすることを本記事ではModelキャッシュと呼びます。ActiveRecordをキャッシュすることで、データベースへの読み込み回数を減らし、レスポンス速度を向上させることができます。 既存ライブラリの紹介と問題点 Modelキャッシュを実現できるG
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く