Module: SleipnirAPI
- Extended by:
- Registry
- Defined in:
- lib/sleipnir_api.rb,
lib/sleipnir_api/tab.rb,
lib/sleipnir_api/util.rb,
lib/sleipnir_api/bitmap.rb,
lib/sleipnir_api/dialog.rb,
lib/sleipnir_api/output.rb,
lib/sleipnir_api/command.rb,
lib/sleipnir_api/process.rb,
lib/sleipnir_api/profile.rb,
lib/sleipnir_api/version.rb,
lib/sleipnir_api/cli/base.rb,
lib/sleipnir_api/ffi/base.rb,
lib/sleipnir_api/searcher.rb,
lib/sleipnir_api/security.rb,
lib/sleipnir_api/sleipnir.rb,
lib/sleipnir_api/key_state.rb,
lib/sleipnir_api/tabbed_ie.rb,
lib/sleipnir_api/profile/ini.rb,
lib/sleipnir_api/profile/key.rb,
lib/sleipnir_api/profile/util.rb,
lib/sleipnir_api/profile/section.rb
Overview
Overview
Class / Module
-
SleipnirAPI
このモジュールは Sleipnir の COM サーバ (Sleipnir.API) に接続するためのメソッドを提供します。
まず new または connect を利用して SleipnirAPI::Sleipnir オブジェクトを取得します。
-
SleipnirAPI::Sleipnir
Sleipnir 全体を操作する API を定義しています。各ドキュメントを操作する場合は SleipnirAPI::Sleipnir#tab メソッドでSleipnirAPI::Tab を取得して行います。
このオブジェクトは SleipnirAPI.new または SleipnirAPI.connect で取得します。
SleipnirAPI::KeyState と SleipnirAPI::Dialog で定義されているメソッドが利用できます。
-
SleipnirAPI::Tab
タブ固有の API (Sleipnir.API でドキュメント ID を引数に取る API) を定義しています。
このオブジェクトは Sleipnir.API の ドキュメント ID を抽象化したものです。実際のドキュメントオブジェクト (DispHTMLDocument) の抽象化は行いません。
SleipnirAPI::KeyState と SleipnirAPI::Dialog で定義されているメソッドが利用できます。Sleipnir.API の ShiftDown や InputBox はタブ固有の API ではありませんが、利便性のため SleipnirAPI::Tab でも利用できるようにしてあります。
-
SleipnirAPI::Security
各タブのセキュリティ設定を変更する API を定義しています。
SleipnirAPI::Security::Config またはハッシュを利用して設定を変更できます。
-
-
SleipnirAPI::Output
スクリプトのアウトプットバーを操作する API を定義しています。SleipnirAPI::Sleipnir#output で取得します。
-
SleipnirAPI::Profile
ini ファイルを操作する API を定義しています。SleipnirAPI::Sleipnir#profile で取得します。
-
-
Utility
-
SleipnirAPI::KeyState
Sleipnir.API の ShiftDown, AltDown, CtrlDown の wrapper API を定義します。SleipnirAPI::Sleipnir および SleipnirAPI::Tab でこのモジュールで定義しているメソッドが利用できます。
-
SleipnirAPI::Dialog
Sleipnir.API の InputBox や MessegeBox などのダイアログ API を定義します。SleipnirAPI::Sleipnir および SleipnirAPI::Tab でこのモジュールで定義しているメソッドが利用できます。
-
SleipnirAPI::VERSION
本ライブラリ (Sleipnir.API の ruby wrapper) のバージョンを定義します。Sleipnir 自体のバージョンは SleipnirAPI::Sleipnir の version から取得できます。
非互換性
Sleipnir 1.xx と Sleipnir 2.xx で API の動作が違う場合はSleipnir 1.xx の動作に合わせるようにしてあります。そのため、Sleipnir 2.xx 用に書かれたスクリプトをそのまま移植すると動かない場合があります。
現時点で判明している動作が違う API は以下のとおりです。
-
SleipnirAPI::Output#insert
Defined Under Namespace
Modules: CLI, Dialog, FFI, KeyState, OptionUtil, Util, VERSION Classes: BitMap, BitMapSizeError, Command, ConnectError, NotImplementedError, Output, Process, ProcessError, Profile, Searcher, Security, Sleipnir, SleipnirError, Tab, TabbedIE, Win32APIError
Class Method Summary collapse
-
.connect(quit_on_finish = false, &block) ⇒ Object
call-seq: SleipnirAPI.connect(quit_on_finish=false) {|pnir| block } SleipnirAPI.connect() -> SleipniAPI::Sleipnir object.
-
.connect0(quit_on_finish) ⇒ Object
:nodoc:.
- .create_sleipnir_ole_object ⇒ Object
-
.new(quit_on_finish = false, &block) ⇒ Object
call-seq: SleipnirAPI.new(quit_on_finish=false) {|pnir| block } SleipnirAPI.new() -> SleipniAPI::Sleipnir object.
Class Method Details
.connect(quit_on_finish = false, &block) ⇒ Object
call-seq:
SleipnirAPI.connect(quit_on_finish=false) {|pnir| block }
SleipnirAPI.connect() -> SleipniAPI::Sleipnir object
既に起動している Sleipnir の Sleipnir.API サーバに接続します。
Sleipnir が起動していない場合は例外を投げます。
引数と戻り値は new と同じです。
example
起動中の Sleipnir に接続 (block を使わない):
pnir = SleipnirAPI.connect
pnir.each do |tab|
puts tab.document.location.href
end
157 158 159 160 161 162 |
# File 'lib/sleipnir_api.rb', line 157 def connect(quit_on_finish = false, &block) unless SleipnirAPI::Process.exist? raise SleipnirAPI::ConnectError, "Sleipnir.API does not running" end connect0(quit_on_finish, &block) end |
.connect0(quit_on_finish) ⇒ Object
:nodoc:
164 165 166 167 168 169 170 171 172 173 |
# File 'lib/sleipnir_api.rb', line 164 def connect0(quit_on_finish) #:nodoc: pnir = SleipnirAPI::Sleipnir.new(create_sleipnir_ole_object) return pnir unless block_given? begin yield pnir ensure pnir.quit if quit_on_finish end end |
.create_sleipnir_ole_object ⇒ Object
175 176 177 |
# File 'lib/sleipnir_api.rb', line 175 def create_sleipnir_ole_object WIN32OLE.new(PROG_ID) end |
.new(quit_on_finish = false, &block) ⇒ Object
call-seq:
SleipnirAPI.new(quit_on_finish=false) {|pnir| block }
SleipnirAPI.new() -> SleipniAPI::Sleipnir object
Sleipnir が起動していない場合は Sleipnir を起動してSleipnir.API サーバに接続します。
既に起動している場合は、その Sleipnir に接続します。
params
-
quit_on_finishtrue の場合、block 終了時に Sleipnir を終了します。block を指定しない場合、この引数は無視されます。
return value
-
block を指定しない場合 SleipnirAPI::Sleipnir オブジェクトを返します。
-
block を指定した場合は SleipnirAPI::Sleipnir オブジェクトを block の引数として block を実行し、block の実行結果を返します。
example
Sleipnir を起動して接続、block 終了時に Sleipnir を終了:
SleipnirAPI.new(true) do |pnir|
pnir.each do |tab|
puts tab.document.location.href
end
end
130 131 132 133 134 135 |
# File 'lib/sleipnir_api.rb', line 130 def new(quit_on_finish = false, &block) unless SleipnirAPI::Process.exist? SleipnirAPI::Process.create end connect0(quit_on_finish, &block) end |