Entries from 2014-11-01 to 1 month

FakeWebでHTTPリクエストをモックする

chrisk/fakeweb · GitHubGemfile require 'fakeweb'使い方はこんな感じ FakeWeb.register_uri(:get, "http://example.com/test1", :body => "Hello World!") Net::HTTP.get(URI.parse("http://example.com/test1")) => "Hello World!" Net::HTTP.get(URI.par…

Schemaをmodelに書き出す

annotateというgemを利用すると、schema情報をmodelに書き出すことが出来ます。 ctran/annotate_models · GitHubGemfile gem 'annotate'bundle installしてconsoleで以下を実行。 $ annotateアルファベット順に並べる場合は--sortオプションを付ける。 $ ann…

RSpecとCucumberでJSONデータをテストする

collectiveidea/json_spec · GitHub を利用しますRspecの場合の使用例 describe User do let(:user){ User.create!(first_name: "Steve", last_name: "Richert") } context "#to_json" do it "includes names" do names = %({"first_name":"Steve","last_nam…

RailsでTreasure Dataにデータを送る

Gemfile gem 'td'config/treasure_data.yml # # This file configures the Treasure Data, Hadoop-based cloud data warehouse. # For more information, visit http://www.treasure-data.com/. # production: # Treasure Data API Key # TREASURE_DATA_API_…

Railsでbitlyを利用する

Gemfile gem 'bitly'config/initializers/bitly.rb Bitly.configure do |config| config.api_version = 3 config.login = 'ログインユーザー名' config.api_key = 'API_KEY' endあとは bitly = Bitly.client u = bitly.shorten(url) u.short_urlとすれば、sh…

RSpecでfileのモックを作成する

FakeFSを利用します。defunkt/fakefs · GitHubGemfile gem "fakefs", :require => "fakefs/safe"RSpecで FakeFS.activate! File.open('test-file.jpg', 'w') do |f| f.puts('foo') end FakeFS.deactivate! # または FakeFS do File.open('test-file.jpg', 'w…

twitterAPIの操作

twitter gemを利用sferik/twitter · GitHubtweetする方法は、clientインスタンスを生成して、updateを実行します。 client = Twitter::REST::Client.new do |config| config.consumer_key = "YOUR_CONSUMER_KEY" config.consumer_secret = "YOUR_CONSUMER_SE…

GraphAPIの操作にfb_graph

nov/fb_graph · GitHubウォールへ投稿する際は、次のようなコードを書くだけ! me = FbGraph::User.me(ACCESS_TOKEN) me.feed!( :message => 'Updating via FbGraph', :picture => 'https://graph.facebook.com/matake/picture', :link => 'https://github.c…

Railsでsubdomain指定時のcucumberテスト方法

routes.rbで以下の用に設定している時、 namespace :api, path: '', constraints: { subdomain: 'api' } do endfeatures/support/paths.rbに以下のように定義して。 def hosted_domain(options = {}) path = options[:path] || '/' subdomain = options[:sub…

RailsAdminで簡単管理画面作成

sferik/rails_admin · GitHubを利用します。Gemfileに追記 gem 'rails_admin'bundle installして $ rails g rails_admin:installconfig/initializers/rails_admin.rbを変更します RailsAdmin.config do |config| # Deviseを利用する時の設定 config.authenti…

rubocopでコードスタイルを整える

bbatsov/rubocop · GitHub $ gem install rubocop$ rubocop -R --auto-gen-config.rubocop_todo.ymlファイルが生成されます。.rubocop.ymlを作成して inherit_from: .rubocop_todo.ymlrubocop_todo.ymlから 少しずつ.rubocop.ymlへ移動して修正を加えていき…

Heroku Dyno SizeとUnicorn worker数の目安

Rubyアプリでのunicorn worker数の目安は次の通り。Dynoサイズ -> Unicorn worker数 1X -> 2-3 2X -> 4-6 PX -> 20-30New Relic等で1 worker当たりの仕様メモリ量を割り出しておき、環境変数WEB_CONCURRENCYを変更すればR14エラーが頻発しないようになります…

vimでRailsを素早く編集する

tpope/vim-rails · GitHub vim-railsはvimでrailsアプリを編集するときに便利な機能を提供してくれるプラグイン。概要だけメモ。 gf関連するファイルに自動で移動してくれる :Aと:Rで特定のファイルに移動できる(config/editor.jsonで編集可能) :ASでsplit…

werkerでHerokuにdeployするまでの設定

CircleCIでHerokuにdeployまでする設定

stagingブランチ、masterブランチそれぞれに変更があるとherokuに反映するようにします。やっていることは次の通り。 maintenanceモードをonにする workerを起動していない状態にする herokuにpush db変更を反映する maintenanceモードをoffにする circle.yml

Rubyでメモリ管理

Oinkを利用します。config/application.rb config.logger = Hodel3000CompliantLogger.new(STDOUT)config/initializers/oink.rb Rails.application.middleware.use(Oink::Middleware, logger: Hodel3000CompliantLogger.new(STDOUT))herokuの場合ログにprepe…

HerokuでCPUやMemoryなどのメトリクスを取得する

簡単2コマンド。 heroku labs:enable log-runtime-metrics heroku restartあとは、 heroku logsでログを確認すると source=web.1 dyno=heroku.2808254.d97d0ea7-cf3d-411b-b453-d2943a50b456 sample#load_avg_1m=2.46 sample#load_avg_5m=1.06 sample#load_a…

Herokuでのlogの表示方法

すべてのログを出力する heroku logsリアルタイムで表示する heroku logs --tail特定のDynoのみ表示する heroku logs --ps router heroku logs --ps web heroku logs --ps web.1特定のソースのみ表示する heroku logs --source app heroku logs --source her…

環境変数を削除する方法

exportで設定した環境変数は unsetで環境変数を削除できます。 export VARIABLE="Hello, World!" unset VARIABLE 参考リンク 逆引きシェルスクリプト/exportした環境変数を削除する方法 - Linuxと過ごす

GraphAPIで特定のpermissionsを与えたTest Userを作成する

Facebookアプリを作成している時に大変なことの1つがテストだと思います。 そのために、テストユーザーが必要なのですがそれがまた大変...Test Userを作成する2つの方法を紹介します。1. テストユーザーはアプリのページから作成可能 2. より細かい設定を行…

GraphAPIのError対応

Access Tokenの期限切れなどのエラーに関して。 Token Error https://developers.facebook.com/docs/facebook-login/access-tokens#errorsその他のエラーの概要。 Error Codes https://developers.facebook.com/docs/graph-api/using-graph-api/v2.1#errors

GraphAPI Permissionsを確認する

ユーザーが何の権限を許可してくれているのかを確認するためには user/permissionsを利用する。 GET /{user-id}/permissionsレスポンスは次のような形式。 { "data": [ { "permission": "public_profile", "status": "granted" }, { "permission": "publish_…

HerokuでNew Relicを利用する

1. addonの追加と環境変数の追加 $ heroku addons:add newrelic:stark $ heroku config:set NEW_RELIC_APP_NAME="アプリ名"2. Gemの追加 gem 'newrelic_rpm'追加後、bundle installします。3. 設定ファイルの追加 テンプレートが用意されているので、それを…

CircleCIでsshを利用する

CircleCIでログやらプロセスやらを見たい!という方はsshでアクセス出来ます。方法は、ビルド画面の右上辺りの'& enable ssh'ボタンをクリックします。すると、SSH Infoという項目が出てきてアクセス情報が表示されます。注意事項としては、sshkeyはGitHubで…

CircleCIでsudoが使えるようになったぞ

何が出来るようになったか大きく5つ! packageのインストール sudo apt-get update; sudo apt-get install gnu-smalltalkこれで、自由にcustom softwareを利用できる。 サービスの古いバージョンの利用 sudo apt-get update; apt-get remove cassandra; apt-…

Git の基本 - コミット履歴の閲覧

git

基本。 $ git log変更履歴も見る場合。 $ git log -p直近の2エントリだけ見る場合。 $ git log -2単語単位でdiffを見る場合。 $ git log --word-diff 参考リンク Git - コミット履歴の閲覧

特定Facebookアプリにおけるユーザーidを取得する

Facebookはuserのidをアプリ毎に発行しています。Graph API Explorerを利用して特定のアプリケーションでの自分のIDを取得する方法を説明します。1. Graph API Explorerを開きます。 https://developers.facebook.com/tools/explorer2. ユーザーIDを取得した…

Railsでredisを利用する

gem redis gem mock_redis基本は以上の二つのgemを利用すれば良いです。 redisの使い方はドキュメント参照。 Rspecのお供にmock_redis causes/mock_redis · GitHub redisドキュメント Redis 参考リンク Add Redis to Your Application : Developer Center Us…

GitHubがハロウィン仕様に!

GitHubのContribution Graphがハロウィン仕様になってます!僕のグラフはこんな感じになってます!以上。