タグ

gemに関するTomato-360のブックマーク (12)

  • ActiveRecord のパフォーマンス改善に関するgemを作った話 - クラウドワークス エンジニアブログ

    こんにちは。クラウドワークスの八木です。 今回は、ActiveRecord のパフォーマンス改善に関する gem を作ったので、それについて紹介したいと思います。先にオチを書いちゃいますが、この Gem を入れるだけで必ずパフォーマンスよくなるとか、そこまでのものではありません(仮に、そんな銀の弾丸があれば、 Rails 体にリクエストを出すべきですし....)。特定のケースにおいて改善が期待される、というタイプのものです。 どんなgem ActiveRecordのpreloadを使う際、アプリケーションの仕様上不必要なSQLのクエリの発行を避けることができるようになる active_record_association_query_economizer という gemです。 github.com 例をあげて説明します。 ある RPGゲームで、ユーザー (User) の職業が魔法使い

    ActiveRecord のパフォーマンス改善に関するgemを作った話 - クラウドワークス エンジニアブログ
  • Railsで効率的かつ安全に未使用のメソッドを削除した話 - てくすた

    ピクスタ開発部で毎日ヒィヒィ言いながらエンジニアをやっております @muramurasan です。 今回はPIXTAのとあるリポジトリにおいて、未使用のメソッドを削除しようとした際、gemを組み合わせることで、効率的かつ安全に削除することができたという話をしたいと思います。 よくやる方式 外部の勉強会などで、「未使用のメソッドを削除する際にどうしているか?」ということを聞いた際、よく聞くのが「未使用らしきコードを見つけ次第、ロギングを行うメソッド呼び出しを挟み込んでいく」というものでした。 この方式は、動的なメソッド呼び出しにも当然対応できますし、お手軽なので、一般的に好まれているようです。 問題点 ただし、この方式では以下の問題点があると私は考えています。 そもそも、未使用らしいメソッドを見つけるのが大変 プロダクションコードを汚してしまう これらの問題を解決するために、PIXTAでは

    Railsで効率的かつ安全に未使用のメソッドを削除した話 - てくすた
    Tomato-360
    Tomato-360 2017/05/26
    これは便利そうだ
  • gemspecとGemfileの役割をはっきりさせておく

    gemspecとGemfileの役割をはっきりさせておく Original: URL: Clarifying the Roles of the .gemspec and Gemfile Date: Thursday, December 16th, 2010 at 9:41 pm Translation: URL: gemspecとGemfileの役割をはっきりさせておく (Not Found) Salvaged from Internet Archive 要約 GemfileGemfile.lockは依存関係を厳密に指定するのが目的なので、アプリケーションを開発するときはレポジトリにチェックインすべき。 一方Gemを開発するときは依存関係を緩やかに定義し柔軟性を持たせることが重要なポイントなので、GemfileGemfile.lockはレポジトリにチェックインしてはいけない。 他、Gemf

  • 書き捨てのRubyスクリプトをgemにするときの育て方の一例 - 2016-09-08 - ククログ

    Rubyでちょっとしたこと、例えばテキスト処理などをしたくてスクリプトを書くことはよくあります。そんなスクリプトは意外と再利用したくなるものです。しかし、作業用ディレクトリに適当なファイル名で保存していたりすると探し出すのは困難ですし、コマンドラインにワンライナーで書いたものだとそもそも残っていないこともあります1。別のPCでの再利用も、それらの保存方法では当然ながら不可能でしょう。 そこで、どこか整理された場所に保存しておいて再利用に備えたいのですが、保存先が問題になります2。そんなとき、私は次のような理由からgemRubyGems)にしてしまうことにしています。手元ですぐに実行できますし、別の環境へのインストールも簡単です。また、他のRubyプログラムへの組み込みもコピペせずに実現できます。もちろん他の人が使えるようになるというメリットもあるのですが、自分の用途に限っても長い目で見れ

    書き捨てのRubyスクリプトをgemにするときの育て方の一例 - 2016-09-08 - ククログ
  • Rails pluginを使ったgemの作り方[1](基本設定編) – joppot

    概要 みなさんこんにちはcandleです。今回からできればシリーズ物として、railsのgemを作っていこうと考えています。なぜかgemの作り方の詳しい解説サイトが日語で少ないので未だgemを満足に作れるほどではないのですが、備忘録も含め書きます。 ちなみに、私はrubyはそこまで達者じゃないので、間違って書いている可能性があるかもしれません。 そこのところも、よろしくお願いします。 前提 railsとgemがインストールされている。 適当なrailsプロジェクトがある gemの基的な知識 少し前まではgemの作成には幾つかの方法がありました。 rails4になり、大きく分けて2つの方法でgemを作成する事が基になってきたらしいです。 1つはgemコマンドを使用したgemの作成。 2つ目はrails コマンドを使用したgemの作成です。 両者の違いなのですが、分かり易く書けば、rai

    Rails pluginを使ったgemの作り方[1](基本設定編) – joppot
  • 巨大レコードのページネーション用gemを作った - PartyIX

    Railsにおいて,kaminariやwill_paginateのようなページネーションライブラリは非常に強力だ. というか,あまりページネーションというものを意識せずとも使えてしまうので,便利だ. ページネーション時のカウントクエリが重い 便利ではあるのだが,すべての場合において無敵なわけではない. 複雑なJOIN を繰り返すことによりインデックスが効かなくなった状態で,レコード数が大量にあるような場合.そんなときに,これらのページネーションを使っていると,重くなる場合がある. ページネーションライブラリは,ページの下部にページネーションのビューを表示している. そして,ここにはラストページの番号が書かれている. この数字は,ページネーションライブラリ内部でカウントクエリを発行して,条件に合致するレコード数をカウントしている. 複雑で重いクエリの場合,このカウントクエリが非常に重くなって

    巨大レコードのページネーション用gemを作った - PartyIX
  • git用のpre-commit gemが便利すぎる - TakiTakeの日記

    まずは $ gem install pre-commit # In your git repo $ pre-commit install これだけで、うっかり残念なコミットをする事故が防げます。 Git フック使ってますか? http://git-scm.com/book/ja/Git-%E3%81%AE%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA-Git-%E3%83%95%E3%83%83%E3%82%AF コミットする前にバリデーションかけて、通らなかったらコミット中止する。コミットメッセージにブランチ名を自動挿入する。など、ルーティンワークをフックに仕込んでおけば、誰も読まないガイドラインページを書く手間が省けますし、強制する事ができて幸せです。 じゃあ、何をフックに設定するかと言うと コードレビューしていると、気にな

    git用のpre-commit gemが便利すぎる - TakiTakeの日記
  • Railsで静的ページの管理を簡単にするgemを作った - WEB SALAD

    はじめに 先月、エラーページをAsset Pipelineで管理する - WEB SALADというエントリを書いたのですが、あの後「これはエラーページに限らずもっと一般化できるのでは」と思ってgemを作ってみました。 このエントリでは、このgemの紹介と使い方を説明したいと思います。 Gakubuchiとは READMEにも書いてあるように、GakubuchiはRailsアプリケーションにおける静的ページをAsset Pipelineで管理するためのgemです。 その仕組みは前回のエントリでも述べた通りで、次のようになっています。 使用するテンプレートエンジンを登録する app/assets/templatesのようなディレクトリを作り、そこに静的ページを書く assets:precompileをフックして、実行後にコンパイルされた静的ページをpublic配下に移す 1の設定作業や3のフッ

    Railsで静的ページの管理を簡単にするgemを作った - WEB SALAD
  • letter_opener と letter_opener_web - Ruby and Rails

    letter_opener 便利 letter_opener は送信したメールの確認に便利ですよね。 送信したメールの分だけスパパパパンとブラウザで開いてくれて。 インストール Gemfile に下記。 gem 'letter_opener', group: :development インストール。 $ bundle config/environments/development.rb に下記。 config.action_mailer.delivery_method = :letter_opener letter_opener_web も便利 ただし letter_opener はリモートで開発していると使えないことが。 例えば MaciTerm から Linux サーバにリモート接続して、ブラウザが Mac にある場合。 letter_opener はリモート先の Linux

    letter_opener と letter_opener_web - Ruby and Rails
  • pry-byebug を使ってRailsアプリをステップ実行する - Hack Your Design!

    Railsアプリケーションのデバッグはどのように行っていますか? 愚直にプリントデバッグ? でも複雑なロジック内だと「このロジックのこの処理のここでピンポイントで止めたい!」という場合もありますよね。 そんなときに便利なのがpry-byebug. Githubのリンクは下記。 https://github.com/deivid-rodriguez/pry-byebug pry-byebugを使えばピンポイントで処理を止めてステップ実行が可能になります。 Requirement Ruby2以上 pry-byebugで使われているByebugはRuby2前提のデバッガーなので2以上が必要になってきます。 導入 下記をGemfileに追加してbundle install. ユースケース 例えばこんなコントローラーのロジックがあったとする。 class PostsController < Appl

    pry-byebug を使ってRailsアプリをステップ実行する - Hack Your Design!
  • Railsのログイン認証gemのDeviseのインストール方法 - Rails Webook

    概要 DeviseはRailsで最も人気なログイン認証機能を提供しているgemです。 RailsにDeviseのインストール方法を説明します。 また、初期設定、ログイン用のユーザーモデルを作成といったDeviseの導入部分を説明します。 次回は、「Deviseのカスタマイズ方法」について説明します。 次々回は、「DeviseとOmniAuth-Twitter連携(Twitterでログインする)」です。 動作確認 ・Rails 4.1.4 ・Devise 3.2.4 目次 deviseのインストールと初期設定 deviseのUserモデルの作成 (おまけ) deviseの10個のモジュール説明 (おまけ) よく使うdeviseのHelperメソッド 1. deviseのインストールと初期設定まず、Railsプロジェクトの作成をします。 $ rails new devise $ cd devi

    Railsのログイン認証gemのDeviseのインストール方法 - Rails Webook
  • Proxy経由のgem install - 京の路

    大学でプロキシ経由でgem installができない。 gem install rails --http-proxy http://proxy.example.com:PORT がTime outになる。 rubygems0.9.0のバグなのか、http_proxyの環境変数にプロキシを設定してやらないとダメらしい。 export http_proxy=http://proxy.example.com:PORT gem install rails でOKでした。 ちなみにWinだと set http_proxy=http://proxy.example.com:PORT gem install rails 前後の記事へ « 赤ちゃんの逆襲 トップ 自分の研究を説明する為に説明しないと行 »

    Tomato-360
    Tomato-360 2013/03/05
    Proxy経由でのgem install
  • 1