ボクココ

個人開発に関するテックブログ

2012-01-01から1年間の記事一覧

instance_eval と class_eval

にしても難解なRuby。これを理解するのに本を何度も読み直さないとわからない。 自分なりのメモなので間違っているかもしれませんがその時は指摘してくれるとうれしいです。instance_eval obj.instance_eval do #そのオブジェクトのクラス定義のコンテキスト…

呼び出し可能オブジェクト

なんかの処理をまとめるとき、通常はdef を使いますね。 ですがdef はdefの外側にある変数を読み込めません。(スコープ) なのでlambda を使ってオブジェクト上のコンテキストで読み込めるようにするのです。 1 b = 1 2 def add a 3 puts a + b 4 end 5 6 a…

スコープとクラスメソッドの疑問

メタプログラミングRubyでフラットスコープについて学んだ。 でもこれから一つの疑問が生じた。 1 my_var = 1 2 puts "myvar:#{my_var} was called at the top level" 3 4 MyClass = Class.new do 5 my_var += 1 6 puts "myvar:#{my_var} was called at the …

Ruby method_missing

引き続き前回の続き。。前回のと同様に method_missing を実現するとどうなるだろう? 45 class Hoge3 46 def method_missing(name, *args) 47 if name =~ /hoge/ 48 p "#{name} was called..." 49 p "Whohooo!" 50 else 51 super 52 end 53 end 54 end 55 5…

Ruby 動的メソッド

前回の続き。 今回は重複するクラスの中のメソッドをリファクタリングしてみよう。 こんなクラスがあったとする。 1 class Hoge 2 def hoge1 3 p "hoge1 was called..." 4 p "Whohooo!" 5 end 6 7 def hoge2 8 p "hoge2 was called..." 9 p "Whohooo!" 10 en…

Ruby 動的ディスパッチ

今日は基礎に戻ってRubyの学習。動的ディスパッチに関してメモ。動的ディスパッチ実行時に呼ぶメソッドを柔軟に変えたいときとかに send() を使う。 これが中々面白いのでいろいろ実験してた。 Test:Unitとか基本的にはメソッド名の先頭にtest_ をつけている…

仕事で学んだイカしたRailsテクニック

毎回同じDBアクセスの場合キャッシュしたくなりますよね。 今日はちょっと感動したコードを紹介。 Rails高速化にはこういうテクニックが必要ですなぁ。 class Area ActiveRecord::Base @@cache = nil class def find_default_area() unless @@cache @@cache …

RailsでなぜかDateTimeでInvalid Argumentと出る件。

こんな文字列をパースしようとしたんだ。 DateTime.parse("02/02/1989") -> うまくいく DateTime.parse("02/12/1989") -> Errorなぜか月や日付が10日移行だとエラーになる。。。 なんでやねん!ってことで仕方なく "1989-02-12" みたいな文字列に変換させて…

最近Facebookのパーミッションでメアドも追加された模様。

FB認証のパーミッションで最近メアドも追加された模様。 スパムが多いからなんだろうねえ http://developers.facebook.com/docs/authentication/permissions/前まで普通に登録できたのに、最近なんでできないんだろ?と思って調べたらこれが原因でした。

Rails3.2 application.js, application.css の読み込み

環境に応じて、javascript_include_tag に :debug => true をつけたりつけなかったりする必要があって大変だったので、以下のようにしました。app/view/layout/application.html.erb 13 Rails.env == "production" %> 14 "all" %> 15 javascript_include_tag…

Rails 3.2 x jquery Mobile ページ毎のCSS適用

いやーやっと解決できました。 jQuery Mobile をRails3.2で使っていると、Ajaxでページ遷移しちゃってアセットパイプラインで繋がった各css.scss が適用できなくてとても困っていました。前はこんな感じでやってた: "> ,,,, すると jQuery Mobile はページ…

Rails 3.2 アセットパイプラインで開発環境でアセットが更新されない

なぜか開発環境でも rake assets:precompile しないとJS、CSSが反映されなかった件について。原因は前開発環境で作ってしまったpublic/assets の中身が残り続けてしまって、それを application.js で読み込んでしまっていたからでした。アセットパイプライン…

(Memo) Rails でセッションが突然消える

掲題のような謎の現象で悩んでいたのでメモ。この原因はRailsはCSRF対策が取れてなかった場合にセッションをクリアするようです。これはコールバックで呼び出したときなどでも同様に発生するので、原因が特定しにくいです。 その部分だけ、の問題であるなら …

Ruby on Rails でリアルタイムWeb

こんばんは。 Rails でリアルタイムを実現しようとしたときに選択肢はいくつかあります。 例えば今年のRailsConfで紹介されていたFirehose.io。 これのDEMOはなかなかイカしてます。 しかしながら、ドキュメントや信頼性があるPusherは僕にとってもっと魅力…

Rails x jQuery Mobile でフォーム2重送信

完全にドツボにハマったのでメモ。。Railsの form_for でフォームを作って、それを送信すると何故か2回連続でリクエストを送信してしまう。 23 @conv.id do |f| %> 24 nil %> 25 26 原因はDevelopmentの時に config.assets.debug = true としていたせいで、2…

RailsConf2012

4/23:http://d.hatena.ne.jp/cevid_cpp/20120423/1335218045 4/24:http://d.hatena.ne.jp/cevid_cpp/20120424/1335367992 4/25:http://d.hatena.ne.jp/cevid_cpp/20120425/1335384099 写真:http://d.hatena.ne.jp/cevid_cpp/20120428/1335560429

RailsConf2012 Pics

唯一のロサンゼルスで撮った写真。 オースティンといえばCongress! RailsConf会場 DHHとの夢の共演! Welcome to RailsConf ワシントンで務めるインドの方と こんなアメリカンライフ Wally:「バット〜!」 beautiful river

ALWAYS 三丁目の夕陽から学ぶ教育の理想の形

ちょっと感動しちゃったんだけど、こんな内容: マンガ家になりたい人が必死に絵を描いている。父親はそのことに大反対で、マジ切れ。それでも押し切ったマンガ家志望の息子は父親と決別して一人書き続ける決意をする。父親が亡くなりそうになっても相変わら…

RailsConf 20120425

Redis Application Patterns in Rails Redis on Rails simple get and set query sample codes: http://github.com/obie/redis_on_rails$ localtunel 3000KEYS construct key -> hash Use Nest github.com/soveran/nest *creates a redis onnection by defau…

RailsConf2012/04/24

Patella: It's Memoization into Memcached calculated in the background with Resque.Solution Memoization Memcached simple to setup the first request still slams the server ]cache warning thing.. Memoization into memcached calculated into Res…

RailsConf2012 04/23

Backbone.js & Rails backbone is light javascript framework put different types of code not mvc * models *templates rails view *views rails controller JS Code Arrangement. Don't use backbone.js at the first time. phase 1 first, use rails ja…

Rails の autotest が止まらない

autotest を実行して失敗すると連続でテストを実行してしまい、失敗原因とか読むのが大変だった。なのでなんとかして止めたかったんだけど、ようやくそれができたのでメモ。 $ vi {RAILS_ROOT}/.autotest Autotest.add_hook :initialize do |autotest| %w{.g…

mongoid で インデックス貼るときにエラー

$ rake db:mongoid:create_indexes13027: point not in range the index declaration in the model is index :location, Mongo::GEO2D , :min => 200, :max => 200こんなエラーがでた。調べてみると、minが200でmaxが200ってどう考えてもおかしいよなw とい…

Heroku Scheduler つかってみた (Rails3.2.3)

定期的に動いてくれるものが欲しくてみつけたのがHeroku Scheduler。前のHerokuアプリはCronで動かしてたけど、Dailyのタダってやつで、一日一回しかやってくれない。 今回は1時間に一回やってもらう必要があった。まずは↓サイトでAddをポチっとな https://a…

Rails3 OmniAuth で基本データ以外の情報取得

Omniauthの基本設定では、誕生日や友達の情報などは取ってこれない。いっぺんにまとめてDBに突っ込みたいケースが出て調べたのでメモ。Omniauthの設定の所で :scope を指定するといけた。 34 Rails.application.config.middleware.use OmniAuth::Builder do …

github の証明書エラー

[homma@localhost youmeet]$ rvmsudo bundle install Fetching https://github.com/amiuhle/jqm-rails.git error: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate…

Factory_girl と Guard がうまくいかない

Guardでサーバ起動すると、 Guard::Rails will now restart your app on port 3000 using development environment. Starting Rails...となり、開発環境で起動される。 RSpec内でFactotryGirlで新しくオブジェクト作っても、それはTest環境のMongoに入っちゃ…

Heroku x Mongo HQ でActionView::Template::Error (Failed to connect to a master node at localhost:27017):

MONGOHQになっていることに注意。 MONGOLABじゃないらしいconfig/mongoid.yml 10 production: 11 uri:

autotest を guard で実装

autotest 環境作った。これ見ながらhttp://www.slideshare.net/koko_u/introduction-to-guard-rspec$ rvmsudo bundle exec guard#ローカルでアセットパイプライン $ bundle exec rake assets:precompile# ヘロクでアセットパイプライン $ heroku run rake as…

Rails3, Mongoid, OmniAuth でFacebookログイン実装

最初はやはり認証。これができないと何もアプリ作れない。 $ rails new youme -m https://github.com/RailsApps/rails3-application-templates/raw/master/rails3-mongoid-omniauth-template.rb -T -OGithub から実装テンプレートを取ってくる。HTTPSの証明…