mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-03 20:00:49 +08:00
init project
This commit is contained in:
83
app/libs/util.rb
Normal file
83
app/libs/util.rb
Normal file
@@ -0,0 +1,83 @@
|
||||
require 'open-uri'
|
||||
|
||||
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 download_file(url, save_path)
|
||||
data = open(url, &:read)
|
||||
file = File.new(save_path, 'w+')
|
||||
file.binmode
|
||||
file << data
|
||||
file.flush
|
||||
file.close
|
||||
file
|
||||
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(/ /, '')
|
||||
end
|
||||
|
||||
def conceal(str, type = nil)
|
||||
str = str.to_s
|
||||
return if str.blank?
|
||||
|
||||
case type
|
||||
when :phone then "#{str[0..2]}****#{str[-4..-1]}"
|
||||
when :email then "#{str[0]}***#{str[(str.rindex('@')-1)..-1]}"
|
||||
else "#{str[0..2]}***#{str[-3..-1]}"
|
||||
end
|
||||
end
|
||||
|
||||
def display_cost_time(time)
|
||||
time = time.to_i
|
||||
return if time.zero? || time < 60
|
||||
|
||||
day = time / (24 * 60 * 60)
|
||||
hour = (time % (24 * 60 * 60)) / (60 * 60)
|
||||
minute = (time % (60 * 60)) / 60
|
||||
|
||||
str = ''
|
||||
str += "#{day}天" unless day.zero?
|
||||
str += "#{hour}小时" unless hour.zero?
|
||||
str += "#{minute}分" unless minute.zero?
|
||||
str
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user