def convert_value(value_, format_, convert_params_=nil)
begin
convert_params_ ||= {}
if @original_value_modifier
value_ = @original_value_modifier.call(value_, convert_params_)
end
unparse_params_ = value_.unparse_params || {}
if @unparse_params_modifier
unparse_params_ = @unparse_params_modifier.call(unparse_params_, convert_params_)
end
string_ = value_.unparse(unparse_params_)
if @string_modifier
string_ = @string_modifier.call(string_, convert_params_)
end
if @parse_params_generator
parse_params_ = @parse_params_generator.call(convert_params_)
else
parse_params_ = nil
end
new_value_ = format_.parse(string_, parse_params_)
return new_value_
rescue Errors::UnparseError => ex_
raise Errors::ConversionError, "Unparsing failed: #{ex_.inspect}"
rescue Errors::ParseError => ex_
raise Errors::ConversionError, "Parsing failed: #{ex_.inspect}"
end
end