プログラミング的なSomething

プログラミング的なSomething

ITエンジニア(?)目線で生活・自転車・トレーニング話を綴ります

Factory Girlを使用してデータベースにデータを読み込ませる

Factory Girl 恥ずかしながら、いままでテストに使用するデータはデータマッパーを使ったスクリプトを作成して対処していました。 Factory Girlでは簡単に登録できるんですね。RSpecを使用する際に親和性が高いみたいです。 何はともあれGemfileを書いてbund…

RailsにおけるValidationの処理をまとめてみた

Validationのお作法をまとめてみました バリデーションの基本的なパターンは存在性、長さ、フォーマット、一意性の確認となります。 整理のため、これら4つの処理をRailsで行う際のお作法をまとめてみます。テストコードも最後に付記しています。 存在性の検…

Railsのテスト・開発・本番環境に関する整理

Railsの3つの環境 Railsにはテスト環境 (test)、開発環境 (development)、そして本番環境 (production) の3つの環境がデフォルトで装備されています。 Railsのコンソールrails consoleではデフォルトで開発環境が使用されます。コンソールで環境を確認すると…

matchを使ったroute.rbの記載

config/routes.rbの編集 ルーティングの記述は、Railsの流儀に従うと以下のように書き換える必要がある。 get ‘static_pages/help' 例えば、上記のようなルートを書いていると、リンク作成時に都度

パーシャルを用いてコードの重複をなくす

パーシャルの使い方を整理します。 headrerとかfooterとかタグ情報を書くのがとにかく嫌い。重複なんて大嫌いなのでパーシャルを使って重複をなくします。「パーシャル」って言葉でひっかけることができなくて、いままで恥ずかしながら知らない概念でした。 …

個人的メモ「vimでPasteするときに自動インデントさせない」コマンド

vim

コードをコピーしてくる際にvimによる自動インデントが猛烈に邪魔なので回避方法。どうせすぐ忘れちゃうのでメモ。 :set paste その後、普通にPaste。 【参考】http://qiita.com/quwa/items/019250dbca167985fe32

RSpecのlet関数を使ってコードの重複を排除する

Ruby on Rails チュートリアル、3章にしてテスト駆動の話が出てくるので初学者が恐れおののいている(だって罵詈雑言が飛んで来るじゃないですか)テストの書き方を学べてとても良いと思います。 というわけで、RSpecの重複を排除するlet関数を書いてみます…

has_manyとbelong_toの関連付け

例によってRuby on Rails チュートリアルです。2章のモデルの関連付けをメモします。 関連付け苦手なので出会ったそばから書き留めておきます。 class User < ActiveRecord::Base attr_accessible :email, :name has_many :microposts end class Micropost <…

Gemfileに記載されているrakeを使用するためのコマンド

例によってRuby on Rails チュートリアル読んでます。 http://railstutorial.jp/ Gemfileに記載されたrakeを使う場面があったのでメモ bundle exec rake db:migrate rakeを実行する前に「bundle exec」を接頭につけます。 その他 bundle exec rake -T db rak…

Ruby on Rails チュートリアルのGitの解説がわかりやすかったので個人的まとめ

普段Git等さわらないので操作をすぐに忘れてしまいがちなので個人的にまとめ。 ブランチの作成 git checkout -b <branch-name> -bオプションを入れれば作成したブランチにcheckoutした状態で作成が済みます。 拡張子の変更 git mv README.rdoc README.md コミット git com</branch-name>…

rbenvからRails3.2をインストールした際に発生したエラーの対応

rbenvでgem install railsしたらこんなエラーがでました。 Building native extensions. This could take a while... ERROR: Error installing rails: ERROR: Failed to build gem native extension. /Users/yonetin/.rbenv/versions/1.9.3-p429/bin/ruby ex…

rbenvにgemset入れてなかったので急いで入れたよ

rvmからrbenvに移ったはいいけどあんまりコード書いてなかったのでgemsetも入れてなかったから入れたよ。 入れ方 brew install rbenv-gemset 作り方 yonetin:study yonetin$ rbenv gemset create 2.0.0-p195 rails created rails for 2.0.0-p195 指定の仕方 …

mavericksにupdateしてからはじめてrbenvでRubyをinstallしたらエラーが出た

エラー出たのでまとめ。 rvm install 1.9.3 => Error while running configure. Halting the installation. https://github.com/wayneeseguin/rvm/issues/2331 読むとどうもmavericksの既知のバグらしい。 Installation of ruby 1.9.3 in Mac OS Mavericks h…

undef_methodによるブランクスレート

メタプログラミングRubyを再読しています。 P101ページにundef_methodにより__id__や__send__を削除した場合のアラートが紹介されていたが、Ruby1.9.3-p342では若干動作が違っていたので記録。例によってGistです。 __id__がobject_idにかわっていただけで、…

EvernoteのAPIを使ってみた

コマンドラインで書いた文章を即Evernoteに飛ばしたい。 最近Evergearを購入してEvernoteの使用頻度が高まっているので、ちとやってみようかと。 例によってコードはGistです。 ruby evernote_createNote.rb と打ち込めば、Evernoteにデータが転送されます。…

素数判定処理をベンチマークにかけてみた

素数判定の処理をベンチマークにかけてみた。 結果はこんな感じです。 (自作) 0.840000 0.000000 0.840000 ( 0.835207) (ライブラリ) 0.010000 0.000000 0.010000 ( 0.011727)20回くらいの繰り返しであれば自作の方が速かったのですが、大きくすればする程ダ…

素数判定をRubyで書く

学習のお題目として単純な素数判定を書きました。 結果は以下のような感じです。 10 is not prime number 11 37 47 55 is not prime number 2から割り始めて、、、という力技です。 割り切れた時点で割り算の処理を止めています。このメソッドをまわせば1〜1…

再帰関数書いたので記録

def printd(n) if ((n / 10) != 0) printd(n / 10) end putc("#{n % 10}") end printd(123) 再帰関数を書いた。 putcは一文字だけ表示させるメソッド。これまで知らなかったので、まとめられた記事を記載しておきます http://www.skymerica.com/blog/yotsumo…

Railsでチェックボックスを作る手順

チェックボックスを作りたい。調べてみると少し複雑な様子。持っている書籍にも詳しくは書かれていなかったので調べてみました。チェックした項目が複数だった場合にはそれがわかるよう、例えば配列なりハッシュで返してくれるよう作ります。今回はハッシュ…

twitter-bootstrap-railsでハマった

ハマりました。 twitter-bootstrap-railsをインストールしたあとにrakeすると以下のようなエラーが。これではどうしようもない。 undefined method `less' for # /Users/yonetin/.rvm/gems/ruby-1.9.3-p125@soba1/gems/railties-3.2.3/lib/rails/railtie/con…

(追記)Nokogiriで属性値を取得する際の処理を簡便化する

(追記)テストを書きました。Gistに追加しています。動的プロキシの勉強兼、Nokogiriの処理について復習するため題のようなプログラムを書きました。 Nokogiriでは各種属性値が取れますが、それを簡単に指定できれば素敵だなということで作成しました。目標は…

vimで誤ったファイルの開き方をして日本語が文字化けする場合の対処

vim

:e ++enc=utf8で、ファイルを開き直す。 原因は不明だけど、どう足掻いても日本語が文字化けしてしまう際に利用した。

Hamlのsyntax error, unexpected keyword_ensure, expecting keyword_endエラーについて

今日も今日とてハマったことやハマったことを書いていきます。 はい、題の通りHamlのエラーです。Rubyのスクリプトを埋め込む場合に起きます。Hamlはインデントをしっかり考えないと時間がかかってしゃーない。早く慣れたいもんです。テーブルの中身を配列で…

shotgunで「Internal Server Error invalid byte sequence in US-ASCII」が出たときの対応

Sinatra使ってチマチマとアプリケーション作成に勤しんでいます。 今回はShotgunでハマった。タイトルの通り「Internal Server Error invalid byte sequence in US-ASCII」が出たときの対処法。要は日本語を入力したときなんかに現れます。対処法は単にmagic…

プログラムへの引数について(eachの返り値について)

injectとeachは同等の動作ができるということで書きなおしてみたがハマった。 eachの返り値がinjectを使った値と同じになると思ったがどっこいそう同じには書けない。eachを返り値に使うようなことはないよう気を付けたいですね。

DataMapperのマイグレーション用スクリプトが完成したのでさらす

ツッコミ歓迎です。モデルも合わせて公開します。 まずモデル。 次にマイグレーションスクリプト。 取り込んだデータはSQLiteで保存しています。Select文とschemaです。 sqlite> select * from posts; 1|うんこを流す場所は?|1|2012-08-24T06:50:12+09:00 2…

DataMapper用手動マイグレーションスクリプト

sinatraでDataMapperを扱うにあたり、マイグレーション用スクリプトを作成しました。 用意しておいたcsvファイルを読み込む形式にしてあります。ただ、DataMapper.finalizeの処理ができていないため、belongs_toを指定したテーブルがDBファイルに正常に反映…

Sinatra+DataMapperによるSQLite3の利用

まだまだ勉強中なので途中経過まで。 SQLiteの仕組みを理解できていなかった。sqlite コマンドでコンソールから操作するんですね。sqliteコマンドだけで操作しようとしていたので、.tablesを打ってもテーブルが表示されないところでハマりました。

ひさびさの更新:RubyistMagazine標準添付ライブラリの動作について「net/http」

参考にした記事:http://jp.rubyist.net/magazine/?0013-BundledLibraries メモ ・opne-uriで画面の全ての情報を取得することが可能 ・ただし、open-uriでは繰り返し処理に向いていない→よって net/httpライブラリが便利 ・http://hogehoge/?queryという表記…

carrierwaveとRmagickで正方形のサムネイル画像を生成する

元画像からサムネイル画像を切り出す際、サイズがまちまちでは格好つかないので、縦横比率が違う画像でも処理できるようにする必要があります。実装方法はuploadコントローラでresize_to_filメソッドを利用すればOKです。 version :thumb do process :resize…