Class: SleipnirAPI::Security
- Inherits:
-
Object
- Object
- SleipnirAPI::Security
- Includes:
- Enumerable, Util
- Defined in:
- lib/sleipnir_api/security.rb
Overview
このクラスは Sleipnir の COM オブジェクト (Sleipnir.API) の wrapper クラスです。Sleipnir のタブ毎のセキュリティ設定を操作する API を定義しています。
-
このオブジェクトは SleipnirAPI::Tab#security で取得します。
-
このクラスは Enumerable を include しています。
セキュリティ設定はハッシュ、シンボル、属性などでアクセスできます。
例:
pnir = SleipnirAPI.connect
tab = pnir.active_tab
# セキュリティ設定の取得 (すべて同じ意味)
tab.security.javascript.enable?
tab.security[:javascript].enable?
tab.security.enable?(:javascript)
tab.security.to_hash[:javascript]
# セキュリティ設定の更新 (すべて同じ意味)
tab.security.javascript.enable!
tab.security(:javascript).enable!
tab.security.set_security(:javascript => true)
# Enumerable method
tab.security.find_all{|e| e.disable? }
セキュリティ名は以下のシンボルを指定できます。
-
:javascript -
:java -
:run_activex -
:download_activex -
:picture -
:sound -
:video
セキュリティ名の一覧は #keys で取得できます。
Defined Under Namespace
Classes: Config
Constant Summary collapse
- NAME2API =
[ [:javascript, :IsJavaScriptEnabled], [:java, :IsJavaEnabled], [:run_activex, :IsRunActiveXEnabled], [:download_activex, :IsDownloadActiveXEnabled], [:picture, :IsPictureEnabled], [:sound, :IsSoundEnabled], [:video, :IsVideoEnabled], ]
Instance Attribute Summary collapse
-
#download_activex ⇒ Object
readonly
「ActiveX のダウンロード」をあらわす SleipnirAPI::Security::Config.
-
#java ⇒ Object
readonly
「Java の実行」をあらわす SleipnirAPI::Security::Config.
-
#javascript ⇒ Object
readonly
「JavaScript の実行」をあらわす SleipnirAPI::Security::Config.
-
#picture ⇒ Object
readonly
「画像の再生」をあらわす SleipnirAPI::Security::Config.
-
#run_activex ⇒ Object
readonly
「ActiveX の実行」をあらわす SleipnirAPI::Security::Config.
-
#sound ⇒ Object
readonly
「サウンドの再生」をあらわす SleipnirAPI::Security::Config.
-
#video ⇒ Object
readonly
「ビデオの再生」をあらわす SleipnirAPI::Security::Config.
Instance Method Summary collapse
-
#[](name) ⇒ Object
指定された名前のセキュリティ設定を取得します。.
-
#disable!(*names) ⇒ Object
指定された名前のセキュリティ設定をすべて無効にします。.
-
#disable?(*names) ⇒ Boolean
指定された名前のセキュリティ設定がすべて無効なら true を返します。.
-
#each(&block) ⇒ Object
call-seq: each {|security_config| … }.
-
#enable!(*names) ⇒ Object
指定された名前のセキュリティ設定をすべて有効にします。.
-
#enable?(*names) ⇒ Boolean
指定された名前のセキュリティ設定がすべて有効なら true を返します。.
-
#get_security ⇒ Object
(also: #to_hash)
セキュリティ設定をハッシュで取得します。.
-
#initialize(tab) ⇒ Security
constructor
A new instance of Security.
- #inspect ⇒ Object (also: #to_s)
-
#keys ⇒ Object
セキュリティ設定の名前 (シンボル) を配列で返します。.
-
#set_security(opts) ⇒ Object
(also: #update)
call-seq: set_security(:javascript => true_or_false, :java => true_or_false, :run_activex => true_or_false, :download_activex => true_or_false, :picture => true_or_false, :sound => true_or_false, :video => true_or_false).
-
#sleipnir ⇒ Object
SleipnirAPI::Sleipnir object.
Methods included from Util
#api, #ensure_version, #join_keyword
Constructor Details
Instance Attribute Details
#download_activex ⇒ Object (readonly)
「ActiveX のダウンロード」をあらわす SleipnirAPI::Security::Config
132 133 134 |
# File 'lib/sleipnir_api/security.rb', line 132 def download_activex @download_activex end |
#java ⇒ Object (readonly)
「Java の実行」をあらわす SleipnirAPI::Security::Config
126 127 128 |
# File 'lib/sleipnir_api/security.rb', line 126 def java @java end |
#javascript ⇒ Object (readonly)
「JavaScript の実行」をあらわす SleipnirAPI::Security::Config
123 124 125 |
# File 'lib/sleipnir_api/security.rb', line 123 def javascript @javascript end |
#picture ⇒ Object (readonly)
「画像の再生」をあらわす SleipnirAPI::Security::Config
135 136 137 |
# File 'lib/sleipnir_api/security.rb', line 135 def picture @picture end |
#run_activex ⇒ Object (readonly)
「ActiveX の実行」をあらわす SleipnirAPI::Security::Config
129 130 131 |
# File 'lib/sleipnir_api/security.rb', line 129 def run_activex @run_activex end |
#sound ⇒ Object (readonly)
「サウンドの再生」をあらわす SleipnirAPI::Security::Config
138 139 140 |
# File 'lib/sleipnir_api/security.rb', line 138 def sound @sound end |
#video ⇒ Object (readonly)
「ビデオの再生」をあらわす SleipnirAPI::Security::Config
141 142 143 |
# File 'lib/sleipnir_api/security.rb', line 141 def video @video end |
Instance Method Details
#[](name) ⇒ Object
指定された名前のセキュリティ設定を取得します。
以下の値を指定可能です。不正な値を指定した場合は nil を返します。
-
:javascript -
:java -
:run_activex -
:download_activex -
:picture -
:sound -
:video
取得できる値は同名の attribute と同じです。
tab = pnir.active_tab
tab.security[:javascript] #=> #<SleipnirAPI::Security::Config:0x2995190 javascript=true>
tab.security.javascript #=> #<SleipnirAPI::Security::Config:0x2995190 javascript=true>
179 180 181 182 183 |
# File 'lib/sleipnir_api/security.rb', line 179 def [](name) if keys.include?(name) instance_variable_get("@#{name}") end end |
#disable!(*names) ⇒ Object
指定された名前のセキュリティ設定をすべて無効にします。
引数に :all を指定するとすべてのセキュリティ設定を無効にします。
tab.security.disable!(:javascript)
tab.security.disable!(:picture, :sound, :video)
tab.security.disable!(:all)
265 266 267 |
# File 'lib/sleipnir_api/security.rb', line 265 def disable!(*names) set!(false, *names) end |
#disable?(*names) ⇒ Boolean
指定された名前のセキュリティ設定がすべて無効なら true を返します。
引数に :all を指定するとすべてのセキュリティ設定が無効なら true を返します。
tab.security.disable?(:javascript)
tab.security.disable?(:picture, :sound, :video)
tab.security.disable?(:all)
240 241 242 243 |
# File 'lib/sleipnir_api/security.rb', line 240 def disable?(*names) names = parse_name(*names) names.all?{|name| self[name].disable? } end |
#each(&block) ⇒ Object
call-seq:
each {|security_config| ... }
すべてのセキュリティ設定を走査します。
block の引数には SleipnirAPI::Security::Config オブジェクトが渡されます。
191 192 193 |
# File 'lib/sleipnir_api/security.rb', line 191 def each(&block) keys.map{|e| self[e] }.each(&block) end |
#enable!(*names) ⇒ Object
指定された名前のセキュリティ設定をすべて有効にします。
引数に :all を指定するとすべてのセキュリティ設定を有効にします。
tab.security.enable!(:javascript)
tab.security.enable!(:picture, :sound, :video)
tab.security.enable!(:all)
253 254 255 |
# File 'lib/sleipnir_api/security.rb', line 253 def enable!(*names) set!(true, *names) end |
#enable?(*names) ⇒ Boolean
指定された名前のセキュリティ設定がすべて有効なら true を返します。
引数に :all を指定するとすべてのセキュリティ設定が有効なら true を返します。
tab.security.enable?(:javascript)
tab.security.enable?(:picture, :sound, :video)
tab.security.enable?(:all)
227 228 229 230 |
# File 'lib/sleipnir_api/security.rb', line 227 def enable?(*names) names = parse_name(*names) names.all?{|name| self[name].enable? } end |
#get_security ⇒ Object Also known as: to_hash
セキュリティ設定をハッシュで取得します。
214 215 216 |
# File 'lib/sleipnir_api/security.rb', line 214 def get_security inject({}) {|h,conf| h[conf.name] = conf.enable?; h } end |
#inspect ⇒ Object Also known as: to_s
287 288 289 |
# File 'lib/sleipnir_api/security.rb', line 287 def inspect "#<%s:0x%x %s>" % [self.class, self.object_id << 1, to_hash.inspect ] end |
#keys ⇒ Object
セキュリティ設定の名前 (シンボル) を配列で返します。
この名前は [], #set_security, #enable?, #disable? などに指定できます。
pnir.active_tab.security.keys
#=> [:javascript, :java, :run_activex, :download_activex, :picture, :sound, :video]
157 158 159 |
# File 'lib/sleipnir_api/security.rb', line 157 def keys NAME2API.map{|e| e.first } end |
#set_security(opts) ⇒ Object Also known as: update
call-seq:
set_security(:javascript => true_or_false,
:java => true_or_false,
:run_activex => true_or_false,
:download_activex => true_or_false,
:picture => true_or_false,
:sound => true_or_false,
:video => true_or_false)
セキュリティ設定をハッシュで指定して更新します。
206 207 208 209 210 |
# File 'lib/sleipnir_api/security.rb', line 206 def set_security(opts) security = to_hash security.update(opts) api.SetSecurity(@tab.id, *(keys.map{|e| security[e] })) end |
#sleipnir ⇒ Object
SleipnirAPI::Sleipnir object
293 294 295 |
# File 'lib/sleipnir_api/security.rb', line 293 def sleipnir @tab.sleipnir end |