ドメインまで取ったブログを1年放置してるふぁんたっちです←
ひどいなーw
毎年毎年まぁ懲りずに三日坊主だな。。このやろう。。←
今年はもうちょっと書きますよ!あぁ!書いてやるとも!!
100PV/month ぐらいになるよう頑張ります。。。
…orz
ふぁんたっちのいんふぉめーしょん
ドメインまで取ったブログを1年放置してるふぁんたっちです←
ひどいなーw
毎年毎年まぁ懲りずに三日坊主だな。。このやろう。。←
今年はもうちょっと書きますよ!あぁ!書いてやるとも!!
100PV/month ぐらいになるよう頑張ります。。。
…orz
Posted in Diary.
– 2012年1月31日
どうやんの?
ってテスト書いてて思ったんだが、
ググってもめんどくさそうなのがいっぱいだし。。
「簡単に呼べる関数ないかなー」とか思って
探してたけど見つからん。。。
いい意味でも悪い意味でも、
何でもありそうなPHPなのに。。。
というわけで testInstanceMethod() っていうのを作ったw
テストしたいクラス内にコピペすりゃ使える。。はず←
(例 Sample.php
Class Sample
{
/**
* privateMethod
*
* @access private
* @return void
*/
private function privateMethod(){
$args = func_get_args();
foreach($args as $arg){
var_dump($arg);
}
}
// こんな感じでクラスに設置してー
/**
* testInstanceMethod
*
* @param string $function_name
* @param array $args_array
* @access public
*/
public function testInstanceMethod($function_name, $args_array){
$args_name_array = array();
foreach ($args_array as $num => $value) {
$arg_name = "\$arg{$num}";
eval($arg_name . " = \$value;");
$args_name_array[] = $arg_name;
}
$args_string = implode(', ', $args_name_array);
eval("\$result = \$this->{$function_name}({$args_string});");
return $result;
}
}
// 実行してみる。
$arg1 = "value";
$arg2 = array("array_value1", "array_value2");
$args = array($arg1, $arg2);
$obj = new Sample();
$obj->testInstanceMethod("privateMethod", $args);
$obj->privateMethod($arg1, $arg2);
↓実行結果
> php Sample.php
string(5) "value"
array(2) {
[0]=>
string(12) "array_value1"
[1]=>
string(12) "array_value2"
}
PHP Fatal error: Call to private method Sample::privateMethod() ...(ry
まぁ最後は private メソッドを直接呼んでるので当然のようにエラーです。
あんまりしっかりチェックしてないので、
動かない場合もありそうだが、とりあえず晒しときます。
では ノシ
Posted in Development.
– 2011年2月9日
ツイッター見てたら気になるものが。。。
『zenbackであなたのブログに全てのフィードバックを。』
って訳で早速導入。
たぶんエントリーの下に出てるかと。。。
出てない人は個別ページへどぞっ -> http://fantatchi.info/archives/226
Posted in Information.
– 2010年12月2日
Rails2 もまともに使ったことない fantatchi です←
今日のエントリーはほぼここ「1時間でツイッターサービスを作ろう! | KRAY Inc」通り。これを Rails3 でやったってだけです。はい←
※ 関係ないこともたまに入ってますがね ( ̄ー+ ̄)ニヤリ…。
ん?なぜ Rails3 かって?。。。
なんかイケメソな感じだからです←
。。。ほっといて下さい。バカなんですw
では本題に。。。
今回の開発環境は以下のような感じです。
MacOSX 10.6
Ruby-1.9.2 ← rvm 絶賛使用中!
MySQL5.1.45 ← もともとボクの環境に入ってただけですw
Rails3
- 他主要 gem
bundler
twitter-auth (https://github.com/nijitaro/twitter-auth)
※ ちなみに後で紹介する Heroku は内部的に Postgres らしい。。ただ MySQL でビルドしても動きます。
詳しく調べたい方はこの辺↓から探して下さい。
http://docs.heroku.com/database#frequently-asked-questions
こんなもんか?では、いつもの如くやったことをだーらだらと。
■ Ruby-1.9.2 を使うので rvm でインストール。
※ rvm って何?って方は → http://gihyo.jp/dev/serial/01/ruby/0039
rvm install ruby-1.9.2
※ 細かいバージョンが気になる方は…
rvm list known
で使用できるバージョンの一覧が出るのでよろしこ。
■ rails3 用 gemset 作成 & 切り替え
rvm --create use ruby-1.9.2@rails3
まぁこれは人それぞれなので好みで。
■ bundler インストール
gem install bundler
※ bundlerってなによ!?な方は、この辺か(http://www.oiax.jp/rails/rails3/bundler.html)、公式か(http://gembundler.com/)
■ プロジェクトディレクトリの作成 & bundle init
mkdir rails3twiservice cd rails3twiservice bundle init
Gemfile が作成されるので以下を記述
gem "rails", ">=3.0.0"
■ Rails3 いんすとぉぉぉぉる
bundle install --path vendor/bundle
さてやっと本題w
■ Rails3 プロジェクト作成
bundle exec rails new . -J -T -d mysql
※ Gemfile がコンフリクトしてるぞ!上書きしちゃうぞボケ!。。的なことを聞かれるから上書き
オプションはこんな感じ。
-J, [--skip-prototype] # 後でJQuery に置き換えるので
-T, [--skip-test-unit] # rspec を使用するので
-d mysql # データベースにMySQLを指定
まぁ別に JQuery も rspec も今回は使わないけどねw 今後の為に!ってことでw
■ gem 追加
以下とかを Gemfile に追加
gem "rails3-generators" gem 'jquery-rails' gem 'rspec-rails', '>= 2.0.0' gem 'factory_girl'
factory_girl も使わないけどねw
ただ、仕事で fixture くんに結構悩まされたので、勉強の為にも導入 (´∇`)
■ 追加 gem 更新
bundle install
■ JQuery、rspec インストール
./script/rails g rspec:install ./script/rails g jquery:install
■ rspec、factory_girl 設定
config/application.rb に以下の設定を追加。
config.generators do |g|
g.test_framework :rspec, :fixture => true, :views => false
g.fixture_replacement :factory_girl, :dir => "spec/factories"
end
■ database 作成
config/database.yml を環境に合わせて設定したら。。
bundle exec rake db:create
■ 試しに controller とか model とか作ってみる。
./script/rails g controller samples ./script/rails g model sample
※ spec ファイルとか、factory_girl のファイルとか作られるか確認。
いらないので削除。
./script/rails destroy controller samples ./script/rails destroy model sample
■ git init
git init
※ ここからは KARY さんのエントリーと合わせて読むと幸せになります。
。。ってか合わせて読まないとわからないと思いますw
タイトルも合わせますので適宜参考にしてください。
■ Heroku に登録
Heroku 周りはめんどくさいので KARY さんのエントリーか、
KARYさんも薦めている↓辺りを参考にして下さい。
http://kuranuki.sonicgarden.jp/2009/05/rubypaasherokurails.html
■ Heroku プロジェクト登録
heroku create rails3twiservice
■ ツイッターアプリ登録
この辺もKARYエントリーを参考にして下さい。 (〃・ω・)ゞえへへ←
■ 開発
- public/index.htmlを削除する
まぁ読んで字の如くw
- ツイッター認証
ここの twitter-auth のインストールだけちょっと違います。
以下を Gemfile に追加して、bundle install します。
gem 'twitter-auth', :require => 'twitter_auth/engine', :git => 'git://github.com/rokudenashi/twitter-auth.git', :branch => 'rails_3'
そして generate + table 作成
./script/rails g twitter_auth bundle exec rake db:migrate
後は一緒♪
■ 偉大なるHelloWorldボタンの実装
この辺も微妙にコマンドが違うので確認してね♪
- controller、view 作成
./script/rails g controller messages index
- ルーティング設定
※ Rails3 でルーティング設定方法が変わってるので注意!
config/routes.rb
#get "messages/index" <- コメントアウト # 以下を追加 resources :messages, :only => [:index, :create] root :to => 'messages#index'
- ルーティング確認
bundle exec rake routes
- controller 実装
KARYさんコード + 以下をファイルの先頭に加えて下さい。
じゃないと化けるお。。
#-*- coding: utf-8 -*-
後は一緒でおk
■ 公開
- gemsファイルの用意
これはいらないです。bundler で管理してるので (´∇`)
- デプロイ前に Heroku の ruby を 1.9.2 に
使用中のバージョン確認
> heroku stack aspen-mri-1.8.6 * bamboo-ree-1.8.7 bamboo-mri-1.9.1 (beta) bamboo-mri-1.9.2 (beta)
- バージョン変更
heroku stack:migrate bamboo-mri-1.9.2
後は一緒 \(^o^)/おしまい \(^o^)/
ちなみに作ったやつはここにあります。たぶん消しますがw
http://rails3twiservice.heroku.com/
動いたので大丈夫だと思いますが間違ってたらごめんなさい!←
では ノシ
Posted in Development.
– 2010年11月25日
仕事でFreeBSDを使うことになりました。。
今までLinux(ほぼCentOS)しか使ったことないけど、
ほぼ一緒だろ?っとか思ってたら。。。
vim での BackSpaceキーの挙動がおかしい。。
前の文字消せない。。
ボク x で消すとか慣れてない←
ビジュアルモードとか使いこなせない←
まぁホントは 慣れろよ! って話なのですが、
どうにもこうにもイライラするので、設定を探す。。。
で、ここ↓でこっそり設定見つけた。
vimrc + screenrc晒し – Cocelo Style
以下を .vimrc に設定すれば FreeBSD でも、BackSpaceキー使えるよ \(^o^)/
※ Mac だと deleteキー ね♪
" backspaceキーの挙動を設定する " indent : 行頭の空白の削除を許す " eol : 改行の削除を許す " start : 挿入モードの開始位置での削除を許す set backspace=indent,eol,start
よかった♪
Posted in Development.
– 2010年11月12日