class Playwright::InputFiles
def as_method_and_params
def as_method_and_params if has_large_file? ['setInputFiles', params_for_set_input_file_paths] else ['setInputFiles', params_for_set_input_files] end end
def has_large_file?
def has_large_file? fsize = 1024 * 1024 # 1MB .any? do |file| file String le::Stat.new(file).size > max_bufsize File le.stat.size > max_bufsize ise_argument_error
def initialize(context, files)
def initialize(context, files) @context = context if files.is_a?(File) @files = [files] elsif files.is_a?(Enumerable) @files = files else @files = [files] end end
def params_for_set_input_file_paths
def params_for_set_input_file_paths le_streams = @files.map do |file| file String itable_stream = @context.send(:create_temp_file, file) le.open(file, 'rb') do |file| writable_stream.write(file) d itable_stream.channel File itable_stream = @context.send(:create_temp_file, file.path) itable_stream.write(file) itable_stream.channel ise_argument_error ams: writable_streams }
def params_for_set_input_files
def params_for_set_input_files ayloads = @files.map do |file| file String name: File.basename(file), buffer: Base64.strict_encode64(File.read(file)), File name: File.basename(file.path), buffer: Base64.strict_encode64(file.read), ise_argument_error oads: file_payloads }
def raise_argument_error
def raise_argument_error ArgumentError.new('file must be a String or File.')