Ruby/Pythonで依存パッケージをローカルインストールして開発環境構築やCIビルドを高速化する By raimon, 2015-11-08(日), in category Git 一般的にRuby/Pythonで書かれたアプリケーションの依存パッケージはBundler/pipでインストールされるが、rubygems.orgやPython Package Indexからの取得・展開に時間がかかり、またこれらの中央サーバがまれにダウンしていると何もできなくなってしまうケースがある。 回避策の一つとして、依存パッケージをGitリポジトリに飲んでしまい、パッケージリポジトリとは通信せずローカルインストールで済ませる、いわゆるvendoring(ベンダリング)と呼ばれる方法がある。 サンプルリポジトリ それぞれのサンプルとなるGitリポジトリをGitHubに作成した。 ruby-local-g
Elasticsearch でダミーデータがほしい と思って調べたら apache-loggen というツールがあるらしいので試してみた。 apache-loggen とは Apache のダミーログを出力します Apache のダミーログを出力し続ける gem のようです。 http://mt.orz.at/archives/2012/10/apache.html http://blog.johtani.info/blog/2013/06/10/fluent-es-kibana/ インストールとヘルプ インストール sudo gem install apache-loggen --no-ri --no-rdoc -V ヘルプ $ apache-loggen -h Usage: apache-loggen [options] --limit=COUNT 最大何件出力するか。デフォルトは0で
こんにちは。会員事業部ビジネス開発グループの高田です。 クックパッドは今年、株主優待制度として、プレミアムサービス一年間無料クーポンを贈呈しました。本エントリではクーポンコードを打ち間違えて、意図せず他の人のクーポンコードを使用するのを防ぐために工夫した話をご紹介します。 はじめに クーポンコードは入力のしやすさを優先して数字だけの文字列にしました。はじめは rand 関数を使って生成しようとしていたのですが、数字の打ち間違えや順序間違いで、意図せず誤使用してしまうのを防ぐためにチェックサムを加えるのがいい、と同僚から助言をもらいました。 いくつか調べて見たところ、Luhn アルゴリズムが上記を満たしていたので利用することにしました。 Luhn アルゴリズムの利用 Luhn アルゴリズムとは、誤り検出のためのチェックサム符号で、1 桁の間違いや隣接する数字の順序間違いを検出できるという特徴
はじめに RubyとRailsで、特定のバージョン下において適用したいパッチを書く方法を調べたのでまとめました。 実装例 以下の通りです。 if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.0.0') # Ruby 2系で適用したいパッチ end if Gem::Version.new(Rails.version) < Gem::Version.new(4) # Rails 3系以下で適用したいパッチ end 解説 バージョン番号の取得 実行時のRuby、Railsのバージョンは以下のようにして取得できます。 RUBY_VERSION #=> "2.2.1" Rails.version #=> "4.2.1" バージョン番号の比較 Rubyでは、バージョンの各番号は1桁なので、単純に文字列の比較を行うだけでいいんですが、Rai
公私含めて2年間でたぶん30個以上はgemを作ってますが、なんとなく体得はしたもののこういうことは誰も教えてくれなかった気がするので残しておきます アンダースコアとハイフンを使い分ける gemを作る第一歩は bundle gem <作りたいgemの名前> ってやると思いますが、単語区切りであればアンスコ、ネームスペースの区切りだったらハイフンを使います アンダースコア区切り $ bundle gem go_princess_precure Creating gem 'go_princess_precure'... create go_princess_precure/Gemfile create go_princess_precure/.gitignore create go_princess_precure/lib/go_princess_precure.rb create go_pri
thoughtbot/factory_girlを活用して日々テストを書いているRailsエンジニアの方々、こんにちは、正徳です。 Forkwellでもfactory_girlを使ってテストを書いています。 このfactory_girlには便利機能が多く、とても使いやすいのですが、女心並みに複雑*1なので、一通りの機能をブログにまとめてみました。 factory_girl初心者から、中級者の参考になれば幸いです。 参考にしたページ このブログの内容は全てfactory_girlのGETTING_STARTEDに記載されています。 読まれた事のない方は、是非一読する事をおすすめします。 目次 factory_girlのインストールと設定 factory_girlの使い方(Using factories) build create attributes_for build_stubbed 遅延評
拙作のBestGemsから注目のGemを紹介するエントリー。第5回は「formatador」を取り上げる。 概要formatadorは標準出力にテキストを整形して出力するライブラリだ。手動では煩わしいテキストの色付けや、テキストによる表組み、プログレスバーの実装まで可能だ。 formatadorは今日現在、合計ダウンロードランキング115位、デイリーダウンロードランキング77位につけている。 インストール 使用例テキストの出力と装飾formatadorの機能は、すべてFormatadorクラスのクラスメソッド呼び出しで利用できる。もちろんインスタンスを生成しても良い。 例えば、以下のコードは、標準出力にHello, World!を出力する。
使用例equalizerを使えば自分で定義したクラスに同値性を比較する機能を簡単に追加することができる。以下は座標をあらわすGeoLocationクラスに同値性を比較する処理をequalizerで追加する例である。 require 'equalizer' class GeoLocation # これで@latitudeと@longitudeが共に等しければオブジェクトが同値と見なされる include Equalizer.new(:latitude, :longitude) attr_reader :latitude, :longitude def initialize(latitude, longitude) @latitude, @longitude = latitude, longitude end end point_a = GeoLocation.new(1, 2) point_
ginzarb_21.md rails_adminのつらみとオススメGemについて rails_adminのつらみ カスタマイズできるようで出来ない rails_adminをカスタマイズする方法まとめ - Qiita レコード件数が一定以上になると使えない機能 ダッシュボード 何も考えずに各モデルをカウントするのでレコード件数増えるとえらいことになる。 関連を付け替えするフォーム 出したり出さなかったりを一々切り替えるのがめんどい 検索機能がほぼ役に立たない じゃあどうするか プロジェクト用のscaffoldを作る方が良いのでは? 一つのモデルに対するを管理画面を作って大まかなレイアウトを決める それをテンプレート化してlayoutとscaffoldのテンプレートを上書きする コントローラーの構成もテンプレートで上書きできる それ以上の場合はlib以下にgeneratorを書く Rails
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 #
はじめにgemspecファイルはRubyのGemファイルの生成元となるファイルである。gemspecファイルでは、Gemに含むファイルの一覧をGem::Specification#filesに設定して、Gemファイルに含むファイル一覧を定義する。 ファイル数が少ない場合は手書きしても良いのだが、ファイル数が多い場合は1つ1つ書くのが馬鹿馬鹿しいため、普通は何らかの方法でファイル一覧をプログラム的に取得して設定する。 このファイル一覧の取得方法は標準化されているとは言いがたく、有名どころのGemであっても、ファイル一覧の取得方法は様々である。このエントリではいくつか目に止まったGemについて、ファイル一覧の取得・設定方法を見てみたい。 なおメジャーなGemを調べるには、拙作のBestGems.orgが便利である。(宣伝) rackrackは合計ダウンロードランキング2位である。 言わずと知れ
みなさん、こんにちは。 ウェブ・サーバーサイドを担当しています、Railsエンジニアの黒田です。 マネーフォワードも早いもので、サービスインしてから2年以上が経過しました。 サービスをご愛顧してくださっている皆様には、心から感謝しております。 さて、今回のエンジニアブログは「リファクタリング」についてです。 マネーフォワードのように、ユーザーファースト&デリバリー優先で爆速開発を進めていると、サービスとしてはイケてても、コード的にイケてるとは言い難い部分が発生してしまいがちです。 「思いやりのないコード」「可読性が悪いコード」「必要以上に複雑なコード」は、バグ発生率を高め、開発スピードを低下させ、何よりエンジニアの気分を憂鬱にさせてしまいます。。。 マネーフォワードでは継続的かつ積極的にリファクタリングの時間を創る取組みをしていますが、そのなかで今回はRailsのリファクタリングでとても便
ターミナルから簡単に曲を聞けるbgm.rbというのを作った - hitode909の日記 Rubyのgemのソースコードを効率的に読む方法を使ってbgm.rbのコードをざっと読んでみました。bundlerは実行環境なのでちょっとずつ挙動を変えながらコードを読めるのがよいです。2015年で今更だけどbundler本当に便利だ・・。 bundle exec -- ruby bgm.rb "椎名林檎" しながらコード読みました。 図 bgm.rb bgm.rb 本体です。BGMクラスの定義が上部にBGMクラスのインスタンスを使うメイン処理が下部にあります。 BGMクラスは大きく分けて キーワードにマッチする楽曲データを取得 楽曲データから音楽ファイル(m4a)のURLを取得、ダウンロード ダウンロードした音楽ファイルを再生(デフォルトはafplay) OSXってafplayっていうコマンドで音楽
Mountable Engine だらけの Rails アプリ開発 はじめに これはドリコムアドベントカレンダーの 2 日目です。 1 日目は id:sue445 さんによる ドリコムを支える中間ポイントシステム - くりにっき です。 お前誰よ id @onk ドリコム歴 2006/12/01 中途入社 9年目に突入しました 仕事 アプリケーションエンジニア 2009/04 から Rails アプリを触るように 主にサーバサイドを担当しています 今日の話 「普通に Rails アプリを作ると Mountable Engine を少なくとも 5 個は使う時代になったよね」って話をします。 目次 Mountable Engine とは Mountable Engine の作り方 Mountable Engine のテストの書き方 Mountable Engine の設定を書きたい 管理画面付
CookpadさんがOSSで先日OSSで公開されたGarageはRestfulなAPI + OAuth(Doorkeeper)をワンストップで提供してくれるgemです。 ちょうど触る機会が出てきたので、今回四苦八苦しながら使ってみたのでそのメモです! 🎂 今回のサンプル実装今回はOAuthで認証して、次のシンプルなAPIにアクセスできるようにするまでのサンプルを作成します。 GET /v1/users => ユーザーのリスト出力 GET /v1/users/:id => 個々のユーザー情報の出力 🎃 Gemの追加Gemfileに以下を追加して、bundle install。 gem 'garage', github: 'cookpad/garage' gem 'responders', '~> 2.0' # If you use Rails4.2+ group :development
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く