You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
educoder/app/libs/util.rb

45 lines
1.2 KiB

module Util
module_function
def days_between(time, other_time)
raise ArgumentError if time.blank? || other_time.blank?
Date.parse(time.to_s) - Date.parse(other_time.to_s)
end
def convert_base64_image(str, **opts)
return if str.blank?
Base64ImageConverter.new(**opts).convert(str)
end
def write_file(io, path)
dir = File.dirname(path)
FileUtils.mkdir_p(dir) unless File.directory?(dir)
Rails.logger.info("### save file #{path}, size: #{io.size} ~")
File.open(path, 'wb') do |file|
if io.respond_to?(:read)
io.rewind
while buffer = io.read(8192)
file.write(buffer)
end
else
file.write(io)
end
end
end
def logger_error(exception)
Rails.logger.error(exception.message)
exception.backtrace.each { |message| Rails.logger.error(message) }
end
def map_or_pluck(relation, name)
relation.is_a?(Array) || relation.loaded? ? relation.map(&name.to_sym) : relation.pluck(name)
end
def extract_content(str)
return '' if str.blank?
str.gsub(/<\/?.*?>/, '').gsub(/[\n\t\r]/, '').gsub(/&nbsp;/, '')
end
end