gihyo.jp » DEVELOPER STAGE » 連載 » 短期集中連載 速報!Ubiquityのポテンシャルを探れ » 第3回 Ubiquityでオリジナルコマンドを作ろう(応用編)

短期集中連載 速報!Ubiquityのポテンシャルを探れ

第3回 Ubiquityでオリジナルコマンドを作ろう(応用編)

今回は,前回に引き続き,実際に自分のコマンドを作ってみます。サンプルとしてgotoコマンドを例に挙げ,応用して利用する方法について紹介します。

gotoコマンド - シンプル版

開きたいサイトが明確にわかっている場合,ブックマークやポータルサイト,ソーシャルブックマークは操作性が遅い場合があります。ブックマークツールバーに登録しておいてボタン1つで飛ぶようにしておいても,対象が増えてくるとスクロール操作が必要になるなど煩雑です。コマンドとキーワードで特定のサイトにジャンプできるようになると便利です。

ここでは,Ubiquityを使ってキーワードから特定のURLにジャンプするコマンド「goto」を作成しながら,Ubiquityコマンドの作成方法や,より実用的な実装方法を説明します。

リスト1 gotoコマンド - シンプル版

CmdUtils.CreateCommand({
  name: "goto",
  takes: { "argv": noun_arb_text },

  author: { name: "Daichi GOTO" },
  license: "BSD",

  execute: function( argv ) {
    var href = "";

    switch ( argv.text ) {
      case "reader":
        href = "http://www.google.com/reader/";
        break;
      case "mixi":
        href = "http://mixi.jp/";
        break;
      case "twitter":
        href = "http://twitter.com/home";
        break;
      case "calendar":
        href = "http://www.google.com/calendar/";
        break;
      case "gmail":
        href = "https://mail.google.com/mail/";
        break;
      case "home":
        href = "http://www.google.com/ig";
        break;
      default:
        href = "http://www.google.com/ig";
        break;
    }

    displayMessage( "going to " + href );
    Utils.openUrlInBrowser( href );
  },
});

引数に任意の文字列を指定し,execute: function()で引数をチェックします。特定のキーワードに一致した場合はdisplayMessage()でメッセージを出力してから,対応するURLをUtils.openUrlInBrowser()で開きます。

たとえば「goto reader」でGoogle Readerにジャンプし,「goto mixi」でMixiにジャンプします。最低限の機能としてはこれで十分であるため,あとはキーワードとURLを追加していくことでより多くのサイトにジャンプできるようになります。

gotoコマンド - カスタム名詞型で補完入力

Ubiquityのコマンド入力を効率的に実施するには補完機能の活用が欠かせません。先ほど作成したgotoコマンドに,静的なカスタム名詞型を使って入力補完機能を実施してみます。任意の文字列名詞型(noun_arb_text)だったところをカスタム名詞型で置き換えます。

リスト2 gotoコマンド - カスタム名詞型で入力補完機能を有効化

noun_type_sitekey = new CmdUtils.NounType(
  "sitekey",
  [ "reader", "mixi", "twitter", "calendar", "gmail", "home" ]
);

CmdUtils.CreateCommand({
  name: "goto",
  takes: { "argv": noun_type_sitekey },

  author: { name: "Daichi GOTO" },
  license: "BSD",

  execute: function( argv ) {
    var href = "";

    switch ( argv.text ) {
      case "reader":
        href = "http://www.google.com/reader/";
        break;
      case "mixi":
        href = "http://mixi.jp/";
        break;
      case "twitter":
        href = "http://twitter.com/home";
        break;
      case "calendar":
        href = "http://www.google.com/calendar/";
        break;
      case "gmail":
        href = "https://mail.google.com/mail/";
        break;
      case "home":
        href = "http://www.google.com/ig";
        break;
    }

    displayMessage( "going to " + href );
    Utils.openUrlInBrowser( href );
  },
});

図1 入力候補が表示される

図1 入力候補が表示される

これでキーワードの入力補完が有効になります。またカスタム名詞型に含まれていないキーワードが指定された場合には,gotoコマンドで処理する内容ではないとしてデフォルトの検索エンジンを使った検索へ処理が切り替わります。

著者プロフィール

後藤大地(ごとうだいち)

ONGS Inc.代表取締役。FreeBSD committer。MYCOMジャーナルにおけるニュース執筆他,『改訂第二版 FreeBSDビギナーズバイブル』,『D言語パーフェクトガイド』,『UNIX本格マスター 基礎編~Linux&FreeBSDを使いこなすための第一歩~』など著書多数.

著書

  • UNIX本格マスター 基礎編 〜Linux&FreeBSDを使いこなすための第一歩〜

    UNIX本格マスター 基礎編 〜Linux&FreeBSDを使いこなすための第一歩〜

トラックバック

  • Ubiquityでローカルのブックマークを検索して開く物を作ってみた

    短期集中連載 速報!Ubiquityのポテンシャルを探れ:第3回 Ubiquityでオリジナルコマンドを作ろう(応用編)|gihyo.jp … 技術評論社を読んでUbiquityでローカルのブックマークを検索して開く物を作ってみた。 世の中onlineへ上げれるブックマークばかりではないと思うの

    Tracked : #1  moochiの日記 (2008/09/06, 14:58)

コメント

コメントの記入

パスサポ

多数の情報処理技術者試験対策書籍の発行実績を誇る技術評論社がお届けする,資格試験合格サイト「めざせ! 情報処理試験 パスサポ」が開設されました。

ピックアップ

サクセスストーリーに続く,快適サーバー運用管理のヒント!

データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた技術情報や心構え,その魅力について多角的に紹介。

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

Ruby Freaks Lounge

Rubyに関わる,執筆者自身の旬なテーマを扱った,リレー形式の連載です。

アルファブロガーたちにホワイトデーのお返しを勝手にレコメンドしてみた

有名ブロガーを例に4つの傾向に分けてホワイトデー対策を解説。「バレンタインにチョコレートもらった,でも何返せばいい?」という悩みにお応えします。

小型Linuxサーバの最高峰 OpenBlockS 600活用指南

搭載メモリの増加,CPUクロックの向上など,あらゆる面が強化された期待の新モデルOpenBlockS 600。この記事ではOpenBlockS 600の紹介から,活用するためのさまざまなノウハウを紹介していきます。

もっと便利に!jQueryでラクラクサイト制作(実践サンプル付き)

本連載では,実践サンプルとともに,jQueryを上手に活用してサイト制作の品質向上・効率化を実現するための実践テクニックを解説します。

サクセスストーリーに続く,快適サーバー運用管理のヒント!

サーバーを自社で運用管理するのはもう限界…。データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

モダンPerlの世界へようこそ

この連載では,Perlの世代間ギャップに悩んでいる方に,いくらかの背景知識と,これだけは知っておいたほうがよいという最低限の慣用句をお届けします。

ロクナナワークショップ NEWS & REPORT

Web制作に関する実践的な講座を開講している「Flashの学校 ロクナナワークショップ」。本連載では,最新講座情報,セミナーイベントの開催情報やレポートを中心にお伝えてしていきます。

まだ間に合う「ITパスポート」受験対策 原山先生の短期合格塾

この連載では,4月18日のITパスポート試験の受験に向けて,短い期間で効率良く受験対策を行う方法や,確実に得点するための裏ワザなどを伝授していきます。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス