module RbSDL2::Filesystem
Public Class Methods
base_path()
click to toggle source
RbSDL2
にロードされた SDL2 の配置パスを戻す。 パスの末尾にはパスの区切り文字がかならずある。 パスの区切り記号は環境依存である。Windows であれば “" が使われる。 Ruby は環境依存のパスの区切り文字を正しく取り扱うことができる。
# File lib/rb_sdl2/filesystem.rb, line 8 def base_path ptr = ::SDL2.SDL_GetBasePath raise RbSDL2Error if ptr.null? ptr.read_string.force_encoding(Encoding::UTF_8) ensure ::SDL2.SDL_free(ptr) end
pref_path(org_name, app_name)
click to toggle source
アプリケーションが書き込むことのできるパスを戻す。 このパスはユーザ毎に存在し、かつアプリケーション固有のものであり OS によって保証されている。 org_name, app_name 引数はパスの生成に利用される。引数にパスの区切り記号がある場合はそれを取り除く。 ここに SDL2 が提示した守るべきルールの要約を記す。
-
アプリケーション内でこのメソッドw呼び出す際は org_name は常に同じ文字列を使うこと。
-
アプリケーションごとに違う app_name を使うこと.
-
アプリケーションに一度割り当てた app_name は変更しないこと。
-
使用する文字はアルファベット, 数字, 空白のみにすること.
注意: このメソッドを呼ぶと SDL
はこのメソッドが戻すパスを実際に作成する。 書き込みを行わなかった場合、空のフォルダーが残る。 引数に空文字を渡しすことも、また既存のフォルダーになるように引数を与えることもできる。 SDL
が知りたいことはアプリケーションがアクセス可能かどうかだけだ。 エラーが出るかどうかはユーザが設定するパスのアクセス制限による。
# File lib/rb_sdl2/filesystem.rb, line 30 def pref_path(org_name, app_name) ptr = ::SDL2.SDL_GetPrefPath(org_name.encode(Encoding::UTF_8), app_name.encode(Encoding::UTF_8)) raise RbSDL2Error if ptr.null? ptr.read_string.force_encoding(Encoding::UTF_8) ensure ::SDL2.SDL_free(ptr) end