Welcome to QuoteIt’s documentation!¶
Contents:
QuoteIt について¶
QuoteIt は、さまざな Web サービスのサムネイル・埋め込みドキュメントを 取得するための Web API です。 プラグインを追加することで、対応サービスを用意に増やすことができます。
QuoteIt の利用方法¶
QuoteIt を利用するためには、以下の2つの方法があります。
- Heroku にデプロイされているサービスを使う
- QuoteIt は Heroku にデプロイ されています。標準プラグインを利用することができます。
- インハウスにデプロイする
- Heroku のサービスからはアクセスできないインハウスのリソースを引用することができます。 独自に追加したプラグインを利用することができます。プラグインの作成方法は、 プラグイン開発 で詳しく説明します。 また、インハウス QuoteIt のプラグインとして Heroku QuoteIt を追加することで、リレーを実現することもできます。インハウスデプロイの方法は、 セットアップ で詳しく説明します。
プラグイン開発¶
QuoteIt で引用できるサービスは、プラグインにより自由に拡張できます。
プラグインの種類¶
プラグインには サムネイルプラグイン と Clip プラグイン の2種類が存在します。
- サムネイルプラグイン
- Twitpic などの画像共有サービスから、画像を引用するためのプラグインです。 結果は 画像 のURLでなければなりません。
- Clip プラグイン
- 任意の Web サービスから引用するためのプラグインです。 結果には任意の HTML タグを利用できます。 埋め込み HTML を引用する場合には、Clip プラグインが便利です。
プラグインの定義¶
サムネイルプラグインの場合¶
url
- 該当サービスの代表的なURLです。プラグイン一覧を表示する際に利用されます。
regexp
本プラグインが対象とするURLの正規表現です。
( )
により正規表現をグループ化し、thumbnail
から参照できます。使える文法は Rubyの正規表現 を参照してください。
thumbnail
- 画像のURLです。
$1
,$2
,$3
, ... でregexp
の n番目にマッチしたテキストを参照できます(nは1から9まで)。 また、$$1
,$$2
,$$3
, ... とすることで、URL エンコードされた値を参照することもできます。
Clip プラグインの場合¶
url
- 該当サービスの代表的なURLです。プラグイン一覧を表示する際に利用されます。
regexp
本プラグインが対象とするURLの正規表現です。
( )
により正規表現をグループ化し、clip
から参照できます。使える文法は Rubyの正規表現 を参照してください。
clip
- 引用するデータのURLです。
$1
,$2
,$3
, ... でregexp
の n番目にマッチしたテキストを参照できます。(nは1から9まで) transform
clip
からHTMLコードを生成する方法を定義します。 制限されたRubyコードが利用できます。Rubyの制限については Rubyのセキュリティモデル のセーフレベル4を参照してください。
また transform
内で利用できるメソッドは以下の通りです。
original_url
regexp
にマッチしたURLclip_url
- マッチしたURLを
clip
によって変換したURL content
clip_url
の指すページの内容json
content
をJSONとしてパースしたハッシュテーブル
プラグインのテスト¶
プラグインの動作は、 Sandboxページ にて確認できます。
プラグインの登録・反映¶
完成したプラグインを config/quote_it.json に登録することで、QuoteIt に反映させることができます。
セットアップ¶
ここでは、インハウスに QuoteIt をデプロイする方法を説明します。 QuoteIt で、インハウスのリソースを引用したい場合に参照してください。 そうでない場合には、Heroku 版の QuoteIt を利用してください。
動作環境¶
QuoteIt を利用するためには、以下のソフトウェアが必要です。
- Ruby 2.0.0 or later
- Bundler 1.3.5 or later
- PostgreSQL 9.3 or later
デプロイ方法¶
1. QuoteIt をダウンロードします。
$ git clone git://github.com/codefirst/QuoteIt.git
2. 必要な gem をインストールします。
$ bundle install --path .bundle --without development test
3. アセットをコンパイルします。
$ bundle exec rake assets:precompile RAILS_ENV=production
4. DB をセットアップします。
$ bundle exec rake db:migrate RAILS_ENV=production
$ bundle exec rake db:seed
5. QuoteIt を立ち上げます。
$ bundle exec rails s -e production
6. QuoteIt にアクセスします。
http://localhost:3000
プラグインの追加¶
インハウスにデプロイした QuoteIt へのプラグインの追加は config/quote_it.json に追記をしたのち、 以下の rake タスクを実行します。
$ bundle exec rake db:seed
Heroku QuoteIt へのリレー¶
インハウス QuoteIt で処理されなかった URL を Heroku QuoteIt へ 移譲することもできます。
以下の設定を config/quote_it.json に追記します。
{
"regexp": "(.+)",
"clip": "https://quoteit.herokuapp.com/clip.html?u=$$1",
"transform": "content",
"service": {
"name": "QuoteIt",
"url": "https://quoteit.herokuapp.com/"
}
}
DB に登録します。
$ bundle exec rake db:seed
注釈
QuoteIt は、プラグインが登録された順に処理をしていくため、 QuoteIt プラグインは必ず最後に登録して下さい。
クレジット¶
コミッタ¶
ライセンス¶
The MIT License.
Copyright (c) 2011-2012 mzp
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.