advantage_quickbase 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. data/lib/quickbase.rb +17 -1
  2. 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
- xml += new_values.map { |field_id, value| "<field fid='#{field_id}'>#{value.to_s.encode(xml: :text)}</field>" }.join()
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"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: advantage_quickbase
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: