すがブロ

sugamasaoのhatenablogだよ

ruby

Rails 4.1のenumの挙動

みんな大好きenum型 DBのカラムでステータスとか使うとき、ぼくは数値派なんですけど、enumで掛けたら楽で良いですよねみたいのあります。ありますよね。 で、Rails 4.1ではそういうのが導入されたっぽいので試してみました。 rails 4.1をインストールしてプ…

ささたつ会議(あるいは新年会)に行ってきました

去る1/26、ささたつ会議が行われました。 ノリで参加したのですが、ワイワイしながら料理を作るというリア充臭あふれるイベントでした。 記憶に残っているメモ 2kgあった鶏肉が一瞬で無くなった 酒もドンドンなくなっていく すぎゃーんさんの将来が心配です …

RubyMineでRSpecが動かない場合

rake で実行するspecタスクは動くんだけど rspec を実行しようとするとエラーが出る こんな感じ RSpec support is disabled because 'rspec-rails' gem or RSpec Rails plugin are missing. Install and activate gem at first ちなみに環境はこう RubyMine …

WindowsでEncoding.default_externalをUTF-8にするには

Ruby製のツールを扱う際にデフォルトエンコーディングがUTF-8じゃなくて人生厳しい場合がある やりたかったこと 自分が使ったわけじゃないんですけど、compassを使うときにSASSファイル等はUTF-8なんだけどWindows環境でcompassを使ってビルドしようとすると…

パーフェクトRubyという本を(共著で)書きました

8/10 パーフェクトRubyが発売になりましたね パーフェクトPythonやパーフェクトPHPで有名なパーフェクトシリーズのRuby版であるパーフェクトRubyが発売されました。 @hibariya @takkanm @ryopeko @joker1007 @udzura たちとチームを組んで書きました。面白そ…

東京Ruby会議10 3日目でトークしてきました

3日目開催お疲れ様でした!! まずは、本当に3日目開催にこぎつけたスタッフの皆さんにお礼を申し上げたいです。いや、ホントすごいと思うんですよ(イベントの調整もさることならが、モチベーションの維持とかお金の事とか……)。感想もじっくり書きたい所なの…

東京Ruby会議10で巻き込まれ型人間のボッチ脱出計画というトークはできませんでしたが黒Ruby会議でトークしてきました

東京Ruby会議10に参加してきました 準備やアンチボッチランチやアンチボッチディナー、そしてバッチの交換とシャイなぼくでも交流しやすい仕掛けがあって素敵でした。特に、バッチが揃った時にスタッフのみなさんがめっちゃ祝福してくれるの良かったです。残…

名前付きキャプチャが便利

Rubyの正規表現で$1とか$2とかしなくても良くなる Ruby1.9系?(1.9.2からかな)では正規表現が左辺にある場合、名前付きキャプチャが使えるようになってたらしいですよ。 従来はこんな感じで番号を主体にしていましたよね。 /programing (.+)\z/ =~ 'progra…

JSONをcoolに表示するap_commandっていうgemを作った

awesome_print をご存知だろうか JSONとかを標準出力にcoolに表示してくれるライブラリだ。 michaeldv/awesome_print · GitHub irbとかpryとかrailsとかで使えるようになっている。 これはこれで便利なんだけど そもそもJSONの中身を見たいときって外部サー…

Windowsでのエンコーディング設定メモ

実機で確認しないと不安だけど、いつも忘れるので 実行するプログラムは以下 # encoding:utf-8 p 'a'.encoding p ARGV[0].encoding p Encoding.default_external p Encoding.default_internal Windows 7での結果 >ruby test.rb 'あああ' #<Encoding:UTF-8> #<Encoding:Windows-31J> #<Encoding:Windows-31J> nil OSX Lion</encoding:windows-31j></encoding:windows-31j></encoding:utf-8>…

printfフォーマットで左詰め

右詰めしかできないと思っていたが "-"を付けることで左詰めにすることができる。最初Rubyのsprintfのフォーマットで見つけたんだけど、C言語でも同様に左詰めができたのだった。 #include <stdio.h> int main(void) { printf("[%10d]\n", 9); printf("[%-10d]\n", 9)</stdio.h>…

letとlet!の違いがわからない

違いというか使い分け方がわからない (追記アリ) letは使われたタイミングで処理される。let!は毎回処理をされる。 てっきり、letは一回初期化されたら使いまわされるんだと思っていたけど、呼び出されたときは毎回初期化するようだ。 describe 'let_test'…

RSpec実行時にlibとspecが$LOAD_PATHに追加される

知らなかった require 'pp' pp $LOAD_PATH っていうコードを用意して Rubyで実行する % ruby sample.rb ["/Users/sugamasao/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1", "/Users/sugamasao/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9…

Windowsを舐めてた

実は前からそうなのかな? 一番下に追記アリ UTF-8で書かれた出力はコマンドプロンプトでもきちんと表示できる!!!(てっきりWin-31Jとかにしないと文字化けすると思っていた) あ、使っているWindowsはWindows7です。 検証ソース # encoding: utf-8 str = "&…

JPGからサムネイルを取得する

単純に縮小するという話ではなくて、JPGのファイルフォーマットのEXIFの中にサムネイルが収められている(ことが多いハズ)ので、そこからサムネイルを取得してみようという話。 やってみた Rubyのexifrっていうの使うと一瞬というか、何のひねりもなくでき…

yard graphでクラス図を生成しちゃえ☆(ゝω・)vキャピ

yardは単なるドキュメンテーションライブラリではない!! みなさん Yard はご存知ですか。ご存知ですよね。 RDocとか、Rubyでソースコードに書くドキュメンテーションツールでYARD(http://yardoc.org/)ってありますよね。プロジェクトのルートでyard docって…

Rails3.2.2を使おうとしたらエラーで死んだのでなんとかしたの巻

Ruby1.9.3 x Rails3.2.2 の話 ruby 1.9.3p155 (2012-03-03 revision 34878) [x86_64-darwin10.8.0] Rails 3.2.2 Mac OS X 10.6.8 Railsのサンプルをひょいと作ろうと思って おもむろに rails new sample ってするじゃないですか。cd sample するじゃないです…

Rackの起動の流れを追う

Rackの動きについてコードを追ってみたよ Rackのバージョンは1.4.1です。 Rackの動きの前に、まずはざっくりRackで動かすっていうのを確認してみよう。 rack up! まずは適当にRackの設定ファイル兼クラスを定義する require 'rack' require 'pp' class Sampl…

RbConfigというのがあってビルド時の情報とかが取れる

Rubyのインストール時の情報を保持しているみたい RbConfig::CONFIGという定数のHashに様々な情報が入っている。 sugamasao@GRAM% ruby -v ruby 1.9.3p5 (2011-11-30 revision 33907) [x86_64-darwin10.8.0] sugamasao@GRAM% ruby -rpp -e"pp RbConfig::CONF…

RubyでMeCabを使う

まずはMecab自体をインストール むかしにやった気がするけど、メモがてら。 MeCabはhomebrewで入れた。portsでもなんでもイイと思います。 % brew install mecab インストールされたら辞書ファイルを作る MeCab: Yet Another Part-of-Speech and Morphologic…

おまいらもMacRubyでMacアプリ作ろう

このエントリはRuby AdventCalender 2011の企画です Ruby Advent Calendar の25日目の記事です。24日目は@kwappaさんのHappy Xmas, Rubyists! | Kwappa研究開発室でした。 ちなみに、12/25と言うと、バカボンのパパや銭形のとっつぁんの誕生日として知られて…

SQLite3の実際の型

SQLiteの型のなぞ SQLite3の型はスゲーざっくりしていると聞いていたのだけど、RailsでデータベースをSQLiteにして、適当なテーブルを作成したら、なんか varchar とか出てくる。どういうことなんだってばよ? というのを調査してみた。 まずはRailsでテーブ…

Rubyの先っちょ(2.0.dev)をビルドする

Jenkins でビルドして test-all を実行するまでの手順メモ Rubyの trunk が 2.0 になったことだし、ビルドしたくて手が震えてしまいますよね!! そんなあなたのための備忘録です。 環境 Mac OSX 10.6.8 SnowLeopard autoconf 2.68(このエントリを書いた時点で…

闇RubyKaigiで話してきました。

まさかのトリ>< 途中までしか話せなかったのですが、言いたいことはきちんと伝えられたので良かったです。 闇RubyKaigi View more presentations from suga masao ちなみに、最初の一枚目は直前の発表タイトルにかぶせるつもりで急遽追加しました。 直前の…

RubyKaigi に参加します

今年もレポート班として Twitterやらにはさんざん書いているのですが、バッヂをつけたついでにエントリにしておこうかなぁと思った次第です。 RubyKaigi について 日本Ruby会議2011(7月16日〜18日) 闇RubyKaigi | in RubyKaigi2011 2011/07/16(Sat) 20:00-21…

ローカルにgemサーバをたてたい!

gemでインストールするのは楽だけれど、インターネットに繋がってないよ! っていう環境って実際は多いと思うんですよね*1。 で、そういう時のためにローカルの gem サーバを建てれば良いんじゃんっていう話と、でもでも、gemの依存関係さらうの大変すぎてや…

ActiveRecord と実際のDBの型の対応を確認する

rails console で確認できる 環境 Ruby 1.9.2 Rails 3.0.1 MySQL 5.1.44 確認方法 ActiveRecord::Base.connection.native_database_typesでアクセスすると確認できる。 実際にやってみる rails console して、上記で書いたプロパティを確認する。 ruby-1.9.2…

Rails3で困っちゃった事リスト

Rails2.x 系の情報だと動かない!!! Rackアプリケーションになったことやモジュール化を進めた影響だと思うのだけど、Rails2.x系ではうまく行くと書いてあるやり方が Rails3 になってうまくいかなかったりしたので、実際にハマった事をメモしておくよ。 ち…

jewelerによるgithubへのリポジトリ作成のいま

--create-repo での挙動について jeweler でらくらく rubygems 作成(github編) - @sugamasao.blog.title # => ”コードで世界を変えたい” では、 github 上のリポジトリ自体も --create-repo で作成していますが、現在リポジトリがない状態で実行すると以下…

html2hamlで

html2haml で変換する場合の挙動について 環境は Ruby 1.9.2 Haml/Sass 3.0.21 という環境で、以下のHTMLを変換したとする <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <h1>テスト</h1> <input type="button" value='テスト' /> </body> </html> これを html2haml で変換すると !!! %html %head %meta…