ruby

PgIndexWhereをRubyGems.orgでリリースしました

PostgreSQLでユニークインデックスを指定するときwhereを指定したい話の続きの続きです。こんな感じでRailsのMigrationファイルで:whereが指定できます。 class AddIndex < ActiveRecord::Migration def up add_index "customers", ["code"], :name => "cust…

RubyKaigi 2013に参加してきました

私が初めて参加したRuby会議は練馬文化センターで開催されたRubyKaigi2011でした。Rubyがやりたくて今の会社に転職し、ちょうど色々な問題にぶち当たってた時、大きな力をもらうことができました。 さて、今回は5月30日から3日間、東京国際交流センターで開…

ActiveSupport::Cacheを簡易KVSとして使う

KVS的なものを使いたいんだけどmemcachedを立てるほどではないって事ありますよね? そんなときはRailsのフラグメントキャッシュで使われてるActiveSupport::Cacheでファイルストレージを使ってみてはどうでしょうか? require 'rubygems' require 'active_s…

chef-clientが怖くて実行できない

まえがき chef(server)を使用してサーバーの自動セットアップを設定しました。 主な用途はさくらVPSのセットアップ。 私が設定しているroleは次の設定を行います。 DBサーバーのインストール Ruby環境のインストール Railsアプリケーションサーバーのインス…

MacOS X + brewでImageMagickとRMagickをインストール

久々にセットアップしたらハマったのでメモ。 $ brew install -f imagemagick --disable-openmp $ gem install rmagick . . . checking for Ruby version >= 1.8.5... yes checking for /usr/local/bin/gcc-4.2... yes checking for Magick-config... yes ch…

私がRubyをインストールしたとき確認すること

rbenvやrvmでRubyをインストールしたときはirbを起動して次のチェックを行います。 ↑キーを押してみるreadlineが正しく組み込まれていないとキーヒストリーが効きません。 require 'openssl' opensslが正しく組み込まれていないとhttpsで通信する時にハマり…

東京Ruby会議10に参加してきた

2013年1月13日〜14日に開催された東京Ruby会議10に参加してきました。 場所は千葉市美浜文化ホール。中国地方に住んでると、東京、埼玉、千葉、神奈川への出張はまとめて「東京に行ってくる」って言うしあんまり細かいことは気にしません!以下は気になった…

CoffeeScriptオンリーでWebアプリを作ってみた

この記事は大都会岡山 Advent Calendar 2012向けに書いたものです。昨日の@ore_publicさんの記事は読みましたか!?さすが僕らのリーダーやで。さて私、RailsからRubyを始めたワリにはCSSとかJavaScriptとか苦手で、あまり関わらないように生きてきました。…

irbやrails cの履歴が表示されなくなった時の対処方法

先日rvmからrbenvに変更したのですが、irbの履歴が出てこなくなりました。いや、正確には出てくるのですが、一度終了してしまうと、以前の履歴が表示されないのです。当然rails cも同じで不便な思いをしていました。Twitterでつぶやくと@nysalorさんが対応方…

rbenv rehashを行わなくて良い方法

rvmがオワコン扱いされだしたのはいつの頃からでしょうか?私はrbenvのrehashが嫌でしつこくrvmを使い続けていたのですが、ここ最近のrvmでのrubyインストールの不安定さに嫌気が差してrbenvに乗り換えることにしました。 $ cd $ rm -rf .rvm $ brew install…

半分ジョーク、半分マジ ken_allをRubygemsで公開しました

今年の夏、FizzBuzz 問題どや顔で解くひとなんかよりも "KEN_ALL.csv" をうまく扱える人の方が社会的貢献度高いという話題がtwitterで盛り上がったのを覚えていますでしょうか?私もそのときは「そんなんあったなぁ。懐かしい」と思っていたのですが、秋にな…

railsで帳票を出力するもう一つの方法 hashed-jasper-railsを作りました

rubyで帳票を出力するならThinReportsでキマリです。railsならthinreports-railsね。 ただ、ThinReportsは多段のグループヘッダ/フッタを設定することができなかったり、細かい設定はちょっと苦手な感じを受けました。 以前Javaのプロジェクトで触ったJasper…

capistranoで自動cleanupする時の注意点

capistranoでデプロイ先のreleaseフォルダをクリーニングするタスクにdeploy:cleanupがあります。 $ cap deploy:cleanupコレを自動実行するためにdeploy.rbに次のように書くようアドバイスしているblogがいくつかあるようです。 after 'deploy:update', 'dep…

札幌Ruby会議2012に参加してきた

2012年9月14日(金)から16日(日)まで札幌で開催された「札幌Ruby会議2012」に参加してきました。 テーマは「We Code.」実行委員長の島田さんのお話では「コードを書く上で周りの人との関わりを考えて欲しい」とのことでした。 以下がセッションの感想です。(p…

Inverse FizzBuzzを解いた。

私の回りではイマイチ盛り上がってないInverse FizzBuzzですが、とりあえず解いてみたので公開しておきます。 逆FizzBuzz問題 (Inverse FizzBuzz) @list = [] (1..15).each do |v| out = "" out += "fizz" if v % 3 == 0 out += "buzz" if v % 5 == 0 @list <…

CSVを結合して処理できるcsv_combineをリリースしました

複数のCSVを結合して処理することができるcsv_combineを作りました。 https://rubygems.org/gems/csv_combine https://github.com/kazuhisa/csv_combine セットアップ Bundlerを使用していればGemfileに次の一文を追加します。 gem "csv_combine" 使い方 普…

Javaの勉強会で発表した「JRubyで作るAPIサーバー」

先日開催された岡山Javaユーザー会勉強会で発表してきました。今回はSupported by RedBull(※1)ということで大阪からレッドブルガールがやってきたりなかなか面白い勉強会でした。 Javaのこと全然分かって無い人の発表なのに、みんな話を聞いてくれてありがと…

Cucumber + CapybaraでUserAgentを設定してテストを行う

jpmobileで作成されたRailsプロジェクトをテストする必要があったので調べてみました。ちょっとググると次のサイトが出てきます。 Ruby 1.9 + Rails3 + jpmobileで構築したサイトをcucumberでテストするためのTips Capybara::Driver::RackTestに細工をしてUs…

Ruby標準添付CSVライブラリのCSV::Convertersについて調べてみた

CSVの書き出しでちょっとやりたいことがあって標準添付のCSVライブラリについて調べてたんだけど、結局標準のままだと出来なそうという結論に至りました。その際にCSV::Convertersについて色々ほじったのでメモがわりに残しておきます。 CSV::Convertersって…

Emacsでrubyを使う

先日参加したオープンソースカンファレンス広島でお話しした @eielh さんに影響されてEmacsでrubyを書きたくなりました。 ちなみに普段Railsの開発で使用しているのはRubyMineというRails用のIDE。メソッドジャンプやコード補完などRailsに特化しているだけ…

Rails3.1でController毎に異なるJavaScriptを出力

Rails3.1から組み込まれたCoffeeScriptを検証しています。コントローラを作成するとapp/assets/javascriptsにコントローラー名.js.coffeeってファイルが作成されますよね。当然該当するコントローラーに関係するViewを表示した時だけロードされると思ってた…

RubyWorld Conference 2011に参加してきた

9月5日と6日に松江市で開催されたRubyWorld Conference 2011に参加してきました。 RubyKaigiと比較してビジネス色が強いイベントなので、正直参加しようか迷ったのですが、参加してみてよかったです。 ▲くにびき大橋を埋め尽くすRubyWorld Conferenceののぼ…

capybara-webkitとcucumberでjavascriptを使ったページのテストを行う

みなさん、cucumber使ってテスト書いてますか?最近はrspecでユニットテストを書き、インテグレーションテストはcucumberを使う例が増えていると聞きます。 ここで問題になるのがjavascriptを含むページのテストです。色々情報を調べていたところ、capybara-…

RubyKaigi2011に行ってきました

7月16日〜18日に開催されたRubyKaigi2011に参加してきました。blogやTwitterでの知り合いとリアルで話をしたり、新しい技術を知ったり、大満足の3日間でした。以下、気になったセッションなど 1日目 Next version of Ruby 1.8 and 1.9 Rubyを作っているメン…

Mac OS X Snow leopardでpostgreSQL接続モジュールのpgをインストール

Mac上でpostgreSQLを使うつもりはないんだけど、Rails3のproduction環境でpostgreSQL接続モジュールのpgを使用する必要があったのでそのためのメモ。 ほとんどの場合gem install pgすると checking for pg_config... noとか表示され、コンパイルできないと思…

Rails3.0.4以下ではvalidationのmessageがproduction環境で正常に表示されない

久々にハマったのでメモ。 次の環境でvalidationのmessageがproduction環境で正常に表示されない現象が発生しました。 rails3.0.3 postgreSQL CentOS Apache2 この環境で次のようにモデルにバリデーションを設定します。 app/model/user.rb class User < Act…

特異クラスを使ってRailsのmodelを動的に作成する

Railsのmodelを動的に定義したくて悩んでたらTwitterで @antimon2 さんがうまい方法を教えてくれました。 # このmodelを継承したクラスを作成すれば # validationを行ったり、viewでform_forが使える class SimpleModel include ActiveModel::Validations in…

WEB+DB PRESS vol.61 Rails3テスト最前線がすばらしい

WEB+DB PRESS vol.61の「Rails3テスト最前線」という記事がかなり良かったので、注釈を交えて紹介したいと思います。 何が良かったのか? 自分はRails2系でTest::Unitを実践していました。AutoTestとYAMLによるデータ投入でおおむね満足していましたが、次の…

Apache2 + Passengerの設定

2010年8月15日に開催される岡山Ruby / Ruby on Rails勉強会でApache2 + PassengerによるRailsデプロイ実演を行ないます。 その時に使用するメモを一足先に公開しておきます。 前提とする環境 ディストリビューションはUbuntu10.04。 Railsアプリがすでに存在…

webrickでリダイレクトするときの注意

久々にはてなダイアリーの「日記を書く」を押すとエディタが変わってました。 どうもお久しぶりです。 最近は社内や派遣先でrubyの勉強会を定期的に開いたりしてruby漬けの毎日です。 その勉強会のネタにしようと以前書いた「IronRubyでWindowsのサービスを…