class Veritrans::Tercerog::Mdk::MdkConfig
MdkConfig クラス
各設定ファイルから値を取得するインターフェイスを提供します。
MdkConfig クラス
各設定ファイルに定義されているキーの定数を定義します。
MdkConfig クラス
各設定ファイルの設定値を検証します。
Constants
- ADD_URL_PAYMENT
- ADD_URL_PAYMENT_VERSION
- ADD_URL_VTID
- ADD_URL_VTID_VERSION
- CA_CERT_FILE
SSL暗号用 CA証明書ファイル名
- COMMON_ITEM
共通アイテム
- CONNECTION_TIMEOUT
接続タイムアウト時間(秒)
- DTO_ENCODE
要求、応答DTOに設定される文字列のエンコード
- DUMMY_REQUEST
ダミーモード(テスト時のみ指定します)
- HOST_URL
接続先ホスト
- MASK_ITEM
マスク対象アイテム
- MDK_DTO_VERSION
DTOのバージョンを指定します。
- MDK_ERROR_MODE
MDK固有エラーモード(テスト時のみ指定します)
- MDK_VERSION
MDKのバージョンを指定します。
- MERCHANT_CC_ID
マーチャントCCID。VeriTrans指定のものを設定します。
- MERCHANT_SECRET_KEY
マーチャント認証鍵。VeriTrans指定のものを設定します。
- MESSAGE_DIGEST_TYPE
メッセージダイジェストタイプ
- PAYNOWID_SERVICE_TYPE
- PROXY_PASSWORD
プロキシパスワード
- PROXY_SERVER_URL
プロキシのURLを指定します(未指定若しくは当プロパティを指定しない場合、プロキシなしとして扱います)
- PROXY_USERNAME
プロキシユーザ名
- READ_TIMEOUT
読み取りタイムアウト時間(秒)
- SSL_PROTOCOL
SSLプロトコル
Public Class Methods
Private Class Methods
new(*user_properties)
click to toggle source
コンストラクタ(private)¶ ↑
- @param
-
user_properties ユーザ定義のプロパティファイル(可変長指定)
# File tgMdk/lib/tg_mdk/mdk_config.rb, line 33 def initialize(*user_properties) tg_mdk_directory = File.expand_path(File.dirname(__FILE__)) mdk_root_directory = "#{tg_mdk_directory}/../.." @errors ||= [] @properties = {} @propertie_files = [mdk_root_directory + "/tg_mdk.ini", tg_mdk_directory + "/internal.ini", tg_mdk_directory + "/mdk_dto/dto.ini"] @propertie_files.concat(user_properties) unless user_properties.empty? build_properties define_propertie_methods end
Public Instance Methods
[](key)
click to toggle source
各パラメータへHashとしてアクセスするメソッドを定義します。¶ ↑
READ_TIMEOUTの値取得時に、値がない場合はCONNECTION_TIMEOUTの値を返す
- @param
-
key キー
# File tgMdk/lib/tg_mdk/mdk_config.rb, line 91 def [](key) return nil if key.nil? if key == :READ_TIMEOUT read_timeout = @properties[key] unless read_timeout.nil? read_timeout else @properties[:CONNECTION_TIMEOUT] end elsif key.kind_of? Symbol @properties[key] elsif key.kind_of? String @properties[key.intern] else nil end end
errors()
click to toggle source
get_user_agent()
click to toggle source
overwrite(key, value)
click to toggle source
valid?(valid_only = false)
click to toggle source
パラメータを検証します。¶ ↑
- @param
-
valid_only trueの場合、検証のみ実行します。
falseの場合、検証エラー時、例外をraiseします。
- @return
-
true: 検証成功、false: 検証エラー
# File tgMdk/lib/tg_mdk/mdk_config/validate.rb, line 31 def valid?(valid_only = false) # store exception @errors = [] # DUMMY_REQUEST presence_of?(DUMMY_REQUEST, dummy_request) numeric_of?(DUMMY_REQUEST, dummy_request) # MDK_ERROR_MODE presence_of?(MDK_ERROR_MODE, mdk_error_mode) numeric_of?(MDK_ERROR_MODE, mdk_error_mode) # MDK_VERSION presence_of?(MDK_VERSION, mdk_version) # MDK_DTO_VERSION presence_of?(MDK_DTO_VERSION, mdk_dto_version) # MERCHANT_CC_ID presence_of?(MERCHANT_CC_ID, merchant_cc_id) # MERCHANT_SECRET_KEY presence_of?(MERCHANT_SECRET_KEY, merchant_secret_key) # HOST_URL presence_of?(HOST_URL, host_url) format_of?(HOST_URL, host_url, /^https:\/\/(\w)+(\.\w)*/i) # CONNECTION_TIMEOUT presence_of?(CONNECTION_TIMEOUT, connection_timeout) numeric_of?(CONNECTION_TIMEOUT, connection_timeout) # READ_TIMEOUT unless read_timeout.nil? presence_of?(READ_TIMEOUT, read_timeout) numeric_of?(READ_TIMEOUT, read_timeout) end # CA_CERT_FILE if !ca_cert_file.nil? && !ca_cert_file.empty? exist_of?(CA_CERT_FILE, ca_cert_file) end # SSL_PROTOCOL presence_of?(SSL_PROTOCOL, ssl_protocol) # COMMON_ITEM presence_of?(COMMON_ITEM, common_item) # MASK_ITEM presence_of?(MASK_ITEM, mask_item) # MESSAGE_DIGEST_TYPE presence_of?(MESSAGE_DIGEST_TYPE, message_digest_type) if valid_only return @errors.empty? ? true : false else # エラーがある場合は、先頭の例外をスローします。 raise @errors.first unless @errors.empty? return true end end
Private Instance Methods
build_properties()
click to toggle source
プロパティファイルを読み取り、インスタンス変数にセットします。¶ ↑
# File tgMdk/lib/tg_mdk/mdk_config.rb, line 52 def build_properties @propertie_files.each do |propertie_file| unless File.readable?(propertie_file) raise Veritrans::Tercerog::Mdk::MdkError.new( Veritrans::Tercerog::Mdk::MdkMessage::MB01_NOT_FOUND_CONFIG_FILE, propertie_file) end open(propertie_file, 'r:utf-8').read.scan(/^\w.*/) do |line| key, value = line.split('=') if value.nil? @properties[key.strip.intern] = "" if key else @properties[key.strip.intern] = value.strip if key end end end rescue => e raise e end
define_propertie_methods()
click to toggle source
各パラメータへプロパティとしてアクセスするメソッドを定義します。¶ ↑
# File tgMdk/lib/tg_mdk/mdk_config.rb, line 75 def define_propertie_methods Veritrans::Tercerog::Mdk::MdkConfig.constants.each do |const| Veritrans::Tercerog::Mdk::MdkConfig.class_eval do define_method const.downcase.intern do @properties[const.intern] end end end end
exist_of?(key, value)
click to toggle source
ファイル存在チェック¶ ↑
- @param
-
key 検証対象項目
- @param
-
value 検証対象の値
- @return
-
true: 検証成功、false: 検証エラー
# File tgMdk/lib/tg_mdk/mdk_config/validate.rb, line 145 def exist_of?(key, value) return true if File.exist?(value) @errors << Veritrans::Tercerog::Mdk::MdkError.new(Veritrans::Tercerog::Mdk::MdkMessage::MA03_FILE_DOES_NOT_EXIST, key) false end
format_of?(key, value, regexp)
click to toggle source
書式チェック¶ ↑
- @param
-
key 検証対象項目
- @param
-
value 検証対象の値
- @param
-
regexp 検証対象の書式、正規表現
- @return
-
true: 検証成功、false: 検証エラー
# File tgMdk/lib/tg_mdk/mdk_config/validate.rb, line 117 def format_of?(key, value, regexp) return true if regexp =~ value @errors << Veritrans::Tercerog::Mdk::MdkError.new(Veritrans::Tercerog::Mdk::MdkMessage::MA02_CONFIG_NOT_CORRECT, key, value) false end
numeric_of?(key, value)
click to toggle source
数値チェック¶ ↑
- @param
-
key 検証対象項目
- @param
-
value 検証対象の値
- @return
-
true: 検証成功、false: 検証エラー
# File tgMdk/lib/tg_mdk/mdk_config/validate.rb, line 131 def numeric_of?(key, value) return true if /^([1-9]\d*|0)(\.\d+)?$/ =~ value @errors << Veritrans::Tercerog::Mdk::MdkError.new(Veritrans::Tercerog::Mdk::MdkMessage::MA02_CONFIG_NOT_CORRECT, key, value) false end
presence_of?(key, value)
click to toggle source
必須パラメータチェック¶ ↑
- @param
-
key 検証対象項目
- @param
-
value 検証対象の値
- @return
-
true: 検証成功、false: 検証エラー
# File tgMdk/lib/tg_mdk/mdk_config/validate.rb, line 102 def presence_of?(key, value) return true unless value.nil? || value.empty? @errors << Veritrans::Tercerog::Mdk::MdkError.new(Veritrans::Tercerog::Mdk::MdkMessage::MA01_CONFIG_MISSING, key) false end