Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
本記事はRubyについて書かれたものではありますが、Python、JavaScript、Javaなど、全ての言語コミュニティに当てはまる事実を述べたものです。依存関係が引き起こす負の連鎖は誰のためにもなりません。 上の図は、私がこれまでに使用した全てのRailsアプリの依存関係を可視化したものです。以下の例はいずれも、どこかで聞いたことのあるものではないでしょうか。 何百ものエントリを含むGemfile 本番環境で読み込まれるテスト用Gem 数百メガバイトもRAMを食うRailsのプロセス Rubygemsシステムは、それを再利用する誰もが容易にRubyのパッケージを作ることができるという点で、賞賛に値するものです。しかし、その便利さが意味するところは、そうしたGemと他のGemを非常に安易に結び付け、さらにそれが、「インターネットでダウンロード」され、数百もの依存関係を持つRailsアプ
gem update 後に gem list すると、同じ gem の複数バージョンがインストールされた状態になっています。 gem list is showing two versions of a Ruby gem immediately after updating the gem – Stack Overflowこれはあかんやつや。 % gem list *** LOCAL GEMS *** activesupport (4.1.2, 4.0.5) bigdecimal (1.2.5, 1.2.4) bundler (1.6.3, 1.5.3) celluloid (0.16.0.pre2) chunky_png (1.3.1, 1.3.0) coderay (1.1.0) coffee-script (2.2.0) coffee-script-source (1.7.0) com
gemを作るって割と心の敷居が高いので一番シンプルな作り方を書いてみた。 まずは、ruby単体で使うようなgemの作り方を説明してみます �注記:もっと詳しい記事も他にありますが、僕的に最低限でまとめてみました。 雛形作成 bundlerを利用してgemの雛形を作ることができる。 bundle gem hello 編集 実装 早速生成したファイルにgem化したいコードを実装してみる。 lib/hello.rb require "hello/version" module Hello # Your code goes here... end ↓ require "hello/version" module Hello class Boy def say puts 'hi' end end end gemspecを編集 gemspecにTODOと書かれた項目が残っているとこの後gemをbuil
gemを作っていると複数のrubyのバージョンや依存gemのバージョンをカジュアルに組み合わせてテストをしたいというのがよくあると思いますが、あまりやり方が知られていない気がするのでまとめてみます 今回のエントリのサンプルプロジェクト github.com 渋谷.rb[:20150520] のLT資料 gemの複数バージョンカジュアルテスト #shibuyarb from Go Sueyoshi (a.k.a sue445) 最初にまとめ Travis CI使うのがめっちゃ楽。 セットアップ bundle gem コマンドでテストを生成 $ bundle gem multiple_version_test_sample -t --mit Creating gem 'multiple_version_test_sample'... create multiple_version_test_s
id:joker1007 さんに触発されました。 Ginza.rb 21回の発表資料。rails_adminのつらみとオススメgem達。 1年間で10個以上アプリやgemを作っている中でよく使うgemをまとめてみます Railsアプリ(rails new した直後に必ず入れる) annotate https://github.com/ctran/annotate_models modelのソースの先頭にテーブルのスキーマ情報を付加してくれるgem。いちいちschema.rbを見に行く必要がなくなるので超ベンリ こんな感じ # == Schema Information # # Table name: plugins # # id :integer not null, primary key # name :string # title :string # version :string #
みなさん、こんにちは。 ウェブ・サーバーサイドを担当しています、Railsエンジニアの黒田です。 マネーフォワードも早いもので、サービスインしてから2年以上が経過しました。 サービスをご愛顧してくださっている皆様には、心から感謝しております。 さて、今回のエンジニアブログは「リファクタリング」についてです。 マネーフォワードのように、ユーザーファースト&デリバリー優先で爆速開発を進めていると、サービスとしてはイケてても、コード的にイケてるとは言い難い部分が発生してしまいがちです。 「思いやりのないコード」「可読性が悪いコード」「必要以上に複雑なコード」は、バグ発生率を高め、開発スピードを低下させ、何よりエンジニアの気分を憂鬱にさせてしまいます。。。 マネーフォワードでは継続的かつ積極的にリファクタリングの時間を創る取組みをしていますが、そのなかで今回はRailsのリファクタリングでとても便
Gemfile pplog のGemfileです。 rev: 38530c94aebae07372f184ee3b726b988ea53aa4 source 'https://rubygems.org' ruby '2.2.0' # Framework gem 'rails', '4.2.0' gem 'responders', '~>2.0' # Database gem 'pg' # Authentication gem 'authority' gem 'devise' gem 'omniauth' gem 'omniauth-twitter' # APIs gem 'twitter', '>= 5.11.0' gem 'airbrake' gem 'hipchat' gem 'idobata' gem 'grape' gem 'pusher' gem 'em-http-request
Infrastracture as code流行の副産物として、もうOpsはある程度Rubyでライブラリを書けるようになりました。 折角Rubyでライブラリを書いたなら、安全&ラクに配布するためGemパッケージにしましょう、出来る人には今更でしょうが知らない人は真似してみてね。 ちなみに意外と誤解されてる点、gemにする=Rubygems.orgで公開する、ではありません、してもOKというだけで。 目標 gemファイルを置いて、gemコマンドで自分のライブラリをサーバに導入する。 こんなかんじで。 gem install -l my_libs-0.0.1.gem じゃあやってみましょう。 Gemの雛形をつくろう Gemの作り方は色々あるようですが、私はもっぱらbundlerです。 bundle gemで必要なファイル群を作成します、便利ですね。 $ bundle gem my_libs c
例えば、berkshelfをgem installしたいときは普通こうやるわけですが gem install berkshelf こうするとrubygems.orgにあるberkshelfがインストールされます。 そうではなくgithub上にある最新のberkshelfをgit cloneで持ってきてインストールしたいときはこのようにします。 git clone git://github.com/berkshelf/berkshelf cd berkshelf rm .ruby-version gem build berkshelf.gemspec gem install berkshelf-3.0.0.beta4.gem rbenv rehash
このブログ(ばくのエンジニア日誌)はBAKUNOTEに移転しました。 Rubyのパッケージ管理システムであるGemを使う機会も増えてきたので、そろそろコマンドをまとめておくことにしました。 RubyGemsとは? Wikipediaより引用 RubyGemsは、Ruby言語用のパッケージ管理システムであり、Rubyのプログラムと("gem" と呼ばれる)ライブラリの配布用標準フォーマットを提供している。gemを容易に管理でき、gemを配布するサーバの機能も持つ。Rubyバージョン1.9以降では標準ライブラリの一部となっている。 便利なGemパッケージが世の中には沢山配布されているので、有効に活用していきたいですね! Gemの公式マニュアルは以下になります。 RubyGems Manuals それでは、よく使うGemコマンドを用途別にまとめていきます。 Gemを探す listまたはsearc
Kiry@TB改め、t_k.rbにしようかしら。少し飽きてきたので。 と思っているKiry@TB改め、t_k.rbです。 今年は桜の開花が早そうですね。(この記事が載ることは葉桜か・・・) 東京近郊でシーズンを逃してしまった方は、北関東まで足を伸ばしてみるのもいいかも。私の出身の群馬県の赤城山の麓に「千本桜」と言われている桜並木があります。標高が高いので4月下旬まで楽しめるはずです。 さて、今回はRailsのプラグインを作成してみたいと思います。 複数回に分けてのご紹介になると思います。 個人的な勉強のためなので、過去のRuby、Railsのバージョンは考慮せず、Ruby2.0.0 、Rails4.0.0.beta1を対象にしてしまいます。 プラグイン作成はvendored pluginとして作成するケースと、gemified pluginとして作成する方法があるようですね。
2013-07-24 gem の依存バージョンはよく考えよう(自戒を込めて) gem travis-ci 私は clockwork という、 cron 的な定期ジョブを Ruby で記述、管理する gem のメンテナンスをしているんですが、gemspec に書く依存バージョンの問題で利用者に迷惑をかけてしまいました。 自戒をこめて、なにに注意しなければいけないか、どう対応したかなどを記します。 発端 clockwork は activesupport に依存しています。 Rails 4 がリリースされ、 activesupport も最新バージョンが 4.0 にアップデートされました。 当時、 clockwork は activesuppoort 依存バージョンをいっさい指定していなかったので、コードをチェックアウトして bundle install すると、最新版の 4.0 が選択される
もしかしたら、Rubyに慣れてない人には気付いていない人も居るかと思ったので、 カジュアルにRubyGemsを活用する事のメリットについて書いておきます。 普通、Rubyのgemパッケージは、gem installでインストールできるようにrubygems.orgにホスティングしておくのが基本です。 とは言え、世界的に公開されるものなので、ちゃんとgemとしての体裁を整えておかないと何か恥ずかしいし、説明とかも英語でちゃんと書いとかないと、って考えると面倒なレベルのツールとかあると思います。 API叩くための簡易コマンドとか、社内ツールの処理自動化とか。 しかし、Bundlerとgitのおかげで、現在はそういった事を余り気にする必要が無くなっています。 Bundlerは、gitリポジトリから直接コードをクローンして、パッケージ化されたgemと同様に扱う事ができます。 参考: Bundler
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く