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.
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: