簡単なプラグインを作成して開発手順を確認する

それでは、一番簡単なサンプルを作成して、その開発手順を確認してみようと思います。ここでは、計算式を計算して、その結果を返すという簡単なプラグインを作ってみます。

冒頭で、関数を1つ作るだけでプラグインが完成することを紹介しました。具体的には、以下の図のように、関数の引数として、ATOKに入力した文字列が得られ、関数の戻り値として、変換候補を返すという仕組みになっています。

ATOKダイレクトAPIの仕組み

Perlで作る時のひな形

以下は、Perlでプラグインを作る場合のひな形となっています。ユーザーからの入力を関数の引数として得て(*1)、それを処理して(*2)、変候補を設定し関数の戻り値として戻す(*3)という一連の流れが見て取れることと思います。

# 諸々の宣言
package Atok_plugin;
use strict;
use utf8;
# プラグインのメイン関数の定義
sub run_process
{
  # --- 関数の引数を得る --- (*1)
  my( $request ) = @_;
  my $input_str = $request->{ 'composition_string' };
  my %result_data;
  my @candidate_array;
  # --- ここで何かしらの処理を行う --- (*2)
  # TODO
  # ..
  # --- 関数の結果に変換候補をセットする --- (*3)
  push( @candidate_array , {  'hyoki'  => "候補" , 
                              'comment'=> "コメント" } );
  $result_data{'candidate'} = \@candidate_array;
  return( %result_data );
}
1;  # ←この行も必ず必要

Rubyで作る時のひな形

以下は、Rubyでプラグインを作る時のひな形となっています。Perl版とほとんど同じですが、ユーザーからの入力を関数の引数として得て(*1)、それを処理して(*2)、変候補を設定し関数の戻り値として戻す(*3)という一連の流れで作ります。

#! /usr/bin/ruby -Ku
module Atok_plugin
  # プラグインのメイン関数の定義
  def run_process( request_data )
    # --- ユーザーの入力を得る --- (*1)
    input_str = request_data['composition_string']
    # --- ここで何かしらの処理を行う --- (*2)
    # TODO
    # ..
    # --- 関数の結果に変換候補をセットする --- (*3)
    result_data = Hash.new
    candidate_array = Array.new
    candidate_array.push( { 'hyoki' => "候補" ,
                            'comment' => "コメント"} )
    result_data['candidate'] = candidate_array
    return result_data
  end
end