advantage_quickbase 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/quickbase.rb +17 -1
- metadata +1 -1
data/lib/quickbase.rb
CHANGED
@@ -2,6 +2,7 @@ require 'net/https'
|
|
2
2
|
require 'nokogiri'
|
3
3
|
require 'json'
|
4
4
|
require 'csv'
|
5
|
+
require 'base64'
|
5
6
|
|
6
7
|
require_relative 'user'
|
7
8
|
require_relative 'table'
|
@@ -240,11 +241,26 @@ module AdvantageQuickbase
|
|
240
241
|
if record_id
|
241
242
|
xml += "<key>#{record_id}</key>"
|
242
243
|
end
|
243
|
-
|
244
|
+
|
245
|
+
new_values = new_values.map do |field_id, value|
|
246
|
+
if value.is_a?(Hash)
|
247
|
+
file = encode_file( value[:file] )
|
248
|
+
"<field fid='#{field_id}' filename='#{value[:name]}'>#{file}</field>"
|
249
|
+
else
|
250
|
+
"<field fid='#{field_id}'>#{value.to_s.encode(xml: :text)}</field>"
|
251
|
+
end
|
252
|
+
end
|
253
|
+
|
254
|
+
xml += new_values.join()
|
244
255
|
xml += "<ticket>#{@ticket}</ticket>"
|
245
256
|
xml += '</qdbapi>'
|
246
257
|
end
|
247
258
|
|
259
|
+
def encode_file ( file )
|
260
|
+
file = File.open(file, 'rb') { |f| f.read } if File.file?(file)
|
261
|
+
Base64.strict_encode64( file )
|
262
|
+
end
|
263
|
+
|
248
264
|
def build_csv_xml( new_values, fields_to_import )
|
249
265
|
xml = '<qdbapi>'
|
250
266
|
xml += "<records_csv><![CDATA[\n"
|