filemaker-ruby とは
filemaker-ruby
とは、Ruby で FileMaker の API を扱うための gem です。
https://github.com/mech/filemaker-ruby
レコードの各フィールドの戻り値はどのような形をしているか
この gem を使うと例えば任意のレコードにおける各フィールドの値を取得することができます。ただ、テキストで取得できる値以外のいわゆる「オブジェクト」はどのように戻ってくるのでしょうか。
結論を申し上げますと、HTTP::URI
クラスのオブジェクトとして戻ってきます1。
戻り値を料理する
オブジェクトのフィールドの戻り値が HTTP::URI
クラスのオブジェクトとわかったので、あとは自在に料理しましょう。メソッドとしては以下のようなものが使えます。
#to_s
、#scheme
、#userinfo
、#host
、#port
、#registry
、#path
、#opaque
、#query
、#fragment
、#opaque
、#opaque
、#opaque
、
具体例
具体的な例を挙げます。foobar
というフィールドが以下のようにオブジェクトフィールドだったと仮定します。画像を埋め込んだオブジェクトフィールドです、
"foobar"=>#<URI::HTTP http://123.123.123.123/fmi/xml/cnt/FIELD_NO_NAME.jpg?-db=YOUR_DB_NAME&-lay=YOUR_LAYOUT_NAME&-recid=RECORD_ID&-field=foobar(1)>,
このオブジェクトに対して前述したメソッドを与えて操作ができます。その結果が以下です。
to_s: http://123.123.123.123/fmi/xml/cnt/FIELD_NO_NAME.jpg?-db=YOUR_DB_NAME&-lay=YOUR_LAYOUT_NAME&-recid=RECORD_ID&-field=foobar(1) #=> foobar.to_s
scheme: http #=> foobar.scheme
userinfo: #=> foobar.userinfo
host: 123.123.123.123 #=> foobar.host
port: 80 #=> foobar.port
registry: #=> foobar.registry
path: /fmi/xml/cnt/FIELD_NO_NAME.jpg #=> foobar.path
opaque: #=> foobar.opaque
query: -db=YOUR_DB_NAME&-lay=YOUR_LAYOUT_NAME&-recid=RECORD_ID&-field=foobar(1) #=> foobar.query
注意点
得られた URI にアクセスする場合には BASIC認証 が必要です。ユーザ名とパスワードは FileMaker のそれと同一です。
参考
-
「タイプ」が「オブジェクト」で、「オプション/コメント」が「外部(オープン)」のフィールドです ↩