下記URLから入手できます。
http://svn.s21g.com/public/rails/plugins/tinyurl_helper/

###仕様
URLを渡すとTinyURLに変換してリンクを作ります。

###使い方

  • application_helper.rbでinclude
    rails>>
    module ApplicationHelper
    include TinyurlHelper
    end
    <<--
  • View内で
    rails>>
    <%= link_to_tinyurl "http://www.yahoo.co.jp" %>
    <<--

###作り方
0. 類似するプラグインを探してコーディングの検討をつける

  1. script/generateする
    shell>>
    script/generate plugin tinyurl_helper
    <<--
  2. 上で生成されたlib/tinyurl_helper.rbを編集
    rails>>
    require 'net/http'

module TinyurlHelper
def link_to_tinyurl(url, html_options = nil)
uri = 'http://tinyurl.com/api-create.php?url=' + url
uri = URI.parse(uri)
tiny_url = Net::HTTP.get_response(uri).body
options = {:title => url, :alt => url}
options = html_options.nil? ? options : options.merge(html_options)
link_to tiny_url, tiny_url, options
end
end
<<--
3. テストを書く(アプリテスト、プラグイン単体テスト両方通るように書くと吉)

rails>>

require 'test/unit'
require File.expand_path(File.dirname(FILE) + "/../lib/tinyurl_helper")

class TinyurlHelperTest < Test::Unit::TestCase
include TinyurlHelper

#dummy link_to
def link_to(name, options = {}, html_options = nil)
[name, html_options[:title]]
end

def test_link_to_tinyurl
url = 'http://www.yahoo.co.jp/'
tiny_url, title = link_to_tinyurl(url)
assert_equal 'http://tinyurl.com/910', tiny_url
assert_equal url, title
end

def test_link_to_tinyurl_with_title
url = 'http://www.yahoo.co.jp/'
tiny_url, title = link_to_tinyurl(url, {:title => 'title'})
assert_equal 'http://tinyurl.com/910', tiny_url
assert_equal 'title', title
end
end
<<--

  1. README, MIT-LICENSEを書く
  • READMEは名前と、概要・使い方を書く
  • MIT-LICENSEは名前だけ変更
  1. 公開用リポジトリにコミット
  2. pluginディレクトリに登録する

###Tips

  • プラグインはweb serverを再起動しないとリロードされない
  • helperを使えるようにする方法は2つ
  1. app/helper/application_helper.rbでinclude(上でやった方法)
  2. plugins/tinyurl_helper/init.rbでsendする
    rails>>
    ActionView::Base.send :include, TinyurlHelper
    <<--
posted by satoko satoko on Tue 26 Feb 2008 at 06:20 with 0 comments
Contents rssrss
NSAssertやNSLogを無効にする:-DNS_BLOCK_ASSERTIONS=1とNS_BLOCK_ASSERTIONS
GDBでview.frameを表示させる
Core Animationについてのリンク集
[iPhone] new BSDライセンスについてライセンス引用のメモ
Implementing a Container View Controller in UIViewController Class Reference
UITableView用のNSIndexPathの作り方
Xcodeのテンプレート、View-based ApplicationとWindow-based Applicationの違い
CopyOnSelectのLion対応
Xcode4のCode Snippetsを別のPCに移動する+gitで管理する
[iPhone] Singleton: iOS4以降はGCDのdispatch_onceを使う
Tags
iphone開発gitIBInterfaceBuilderiOSSIMBLSnippetsterminaltwitterxcodeXcode4
Comments rssrss
https://buy-property-uae.com/ https://buy-property-uae.com/: Many international investors believe, in today's e... 04/24 00:16
https://www.gms4you.us/ https://www.gms4you.us/: Reliable reviews confirm, in today's world using l... 04/21 19:41
https://rootskitchen.bar/ https://rootskitchen.bar/: Finished a deadly evening session punting on crash... 04/18 12:17
https://rootskitchen.bar/ https://rootskitchen.bar/: Just wrapped up a cracking arvo session grinding c... 04/17 02:19
https://si-design.ru/o-nas https://si-design.ru/o-nas: Цена дизайн-проекта стабильна и не изменится к кон... 04/10 17:15
https://corporativ-luxe.ru/magiya-solnechnoy-kapli https://corporativ-luxe.ru/magiya-solnechnoy-kapli: Мы работаем для вас без выходных и праздников htt... 04/10 16:20
https://si-design.ru/reutov https://si-design.ru/reutov: Интерьер, оформленный в стиле модернизм, отличаетс... 04/08 06:24
https://sbornye-gruzy-kitay.ru/ https://sbornye-gruzy-kitay.ru/: Реально ли привезти косметику? Там же нужны особые... 04/08 03:06