resourceにアクションを追加する
Merbでリソースに:editのようなカスタムアクションを追加する場合、 以下のように:memberオプションを利用出来ます。
config/rou
1 resources :materials, :member => {:download => :get}
これによって、GET /materials
が、Materials#downloadにmapされます。
Merbでリソースに:editのようなカスタムアクションを追加する場合、 以下のように:memberオプションを利用出来ます。
config/rou
1 resources :materials, :member => {:download => :get}
これによって、GET /materials
が、Materials#downloadにmapされます。
Merbでファイルアップロードのspecを書く場合には、
multipart_
1 tmp = Tempfile.new('spec') 2 path = tmp.path + ".txt" 3 begin 4 file = open(path, "w+") 5 file.write "test" 6 multipart_post(resource(:materials), 7 :material => {:id => nil, :label => 'test', :file => file}) 8 tmp.close 9 ensure 10 file.close 11 File.unlink path 12 end
:content_t
自分用メモ。
Mac標準のTextEditとプレビューを使ってリンクを含むPDFを作成します。
2月25日付けでezPhotoMai
先日の記事と随分被っておりますが、ご了承くださいませ。
iPhoneで撮影した写真をじじばば(携帯メールアドレスしか持たない)に送りたいと思ったのですが、付属や市販のメールアプリでは画像サイズが大きかったり、日本語が文字化けしていたので、これを解消したいと思いこのアプリを制作しました。ezはeasyの意味ですが、zでじぃー(じじ)も兼ねています。
現在、日本のAppStoreの有料アプリケーション、写真部門で26位にランクされています。
ブログやiTunes Storeにも色々要望を頂いているので、検討して拡充していきたいと考えています。
iPhoneで撮った写真をリサイズし、Gmailを使って簡単に写真添付メールを送信することができます。
iTunesストアURL
http://itunes.apple. com/WebObj ects/MZSto re.woa/wa/ viewSoftwa re?id=3057847 12&mt=8
特徴
(注)
Merbのデフォルト構成にはRailsのような HTMLのsanitizeを行うようなヘルパーメソッドは無いのですが、 Gemで提供されている sanitize というライブラリを使うと、簡単にHTMLのsanitizeを行う事が出来ます。
1 Sanitize.clean(html, Sanitize::Config::RELAXED)
タグ毎に有効・無効の細かい設定が出来て、使い勝手が良いです。
Singleton Methodを削除する方法 についてですが、 Objectクラスに用意されているとありがたいですね。
object_ext
1 class Object 2 def remove_singleton_met hod(*args) 3 (class << self; self end).class_eval do 4 args.each{|i| send :remove_met hod, i} 5 end 6 end 7 end
こんな感じ。
方法を探していたのですが、意外と苦戦したのでメモ。
1 object = new Object 2 def object.foo; end 3 object.singleton_ methods #=> [:foo] 4 (class << object; self end).class_eval {send :remove_met hod, :foo} 5 object.singleton_ methods #=> []
これで行けるようです。instance_e
カメラ系やメモ系のアプリなんかはユニーク/一意な名前を考えるのに苦労します。で、*.appファイル名と、iPhone上で表示される表示名を変えたいと思ったのでメモメモ。
Store上で表示される名前と*.appファイル名と、iPhone上の表示名が違っても申請が通るかどうか、またどれくらい違ったらokなのか気になるところです。ちなみにStore上とiPhone上の表示名は違うことはよくあるみたいで、Store上ではより長い仕様分かりやすい名前にするのをよく見かけます。
例えばShopping Pink.appというappファイル名で、表示はShoppingとすることが可能です。
Info.plist
1 <key>CFBundleDisplayName</key> 2 <string>Shopping</string> 3 <key>CFBundleEx ecutable</key> 4 <string>${EXECUTABLE _NAME}</string>
ぐぐったところ、CFBundleNa
/ Localized versions of Info.plist
keys / NSHumanRea
dableCopyr ight = "© __MyCompan yName__, 2008";
CFBundleName = "English MenuBar"; //...and Finder's QuickLook
CFBundleDisplayName = "EnglishApp ";
http://forums.macrum ors.com/sh owthread.p hp?t=537977
http://eie
http://for
http://dev
An Idea for Open Avatar Exchange
I am using GRAVATAR at github.com
But the GRAVATAR is not the only provider of such avatars.
For example,
twitter.co
Imagine twitter.co
But what is advantage for provider?
That's the obvious question.
Answer is inter-serv
The way to make the exchange is really simple. Provide REST API to map MD5 hash of email address to avatar image. Block accesses from domains you don't want to exchange.
In addition, avatar providers can harvest stats of the sites that are using your avatar image.
MerbのCacheはなかなか優れた設計なので面白いのですが、
開発中にログにCache Miss/Hitの具合が分かるように出力してほしかったので、
developmen
1 class LoggingMemcachedStor e < Merb::Cach e::Memcach edStore 2 include Extlib::Hook 3 4 before :read do |key, params| 5 if exists?(key, params) 6 Merb.logger.debug "Cache Hit: #{key}" 7 else 8 Merb.logger.debug "Cache Miss: #{key}" 9 end 10 end 11 12 before :write do |key, data, params, conds| 13 Merb.logger.debug "Cache Write: #{key}" 14 end 15 end
こんな感じでログに出ます。
1 merb : worker (port 4000) ~ Cache Hit: Plugins#show 2 merb : worker (port 4000) ~ Cache Write: Plugins#show