class Object

Public Instance Methods

append_file(fname, content) click to toggle source

append content to file and add “n” automatically

# File lib/rubyutility.rb, line 137
def append_file(fname, content)
     begin
         aFile = File.new(fname,"a")
         aFile.puts content
         aFile.close
     rescue Exception=>e
         # logger.error e
         p e.inspect
     end
end
append_to_file(data, fname) click to toggle source
# File lib/rubyutility.rb, line 218
def append_to_file(data, fname)
    # append(fname, data)
     begin
         open(fname, "a") {|f|
                f.write(data)
            }
     rescue Exception=>e
         # logger.error e
         p e.inspect
     end
end
chinese_number(i) click to toggle source
# File lib/rubyutility.rb, line 9
def chinese_number(i)
    i_to_ch(i)
end
generate_password(length=6) click to toggle source
# File lib/rubyutility.rb, line 1
def generate_password(length=6)  
  chars = 'abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ123456789'  
  password = ''  
  length.downto(1) { |i| password << chars[rand(chars.length - 1)] }  
  password  
end
get_dir(path) click to toggle source
# File lib/rubyutility.rb, line 197
def get_dir(path)
    if path.end_with?("/")
        return path[0..path.size-2]
    end
    index = path.rindex("/")
    return nil if !index
    return path[0..index-1]
end
i_to_ch(i) click to toggle source
# File lib/rubyutility.rb, line 12
def i_to_ch(i)
    list = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"]
    s = i.to_s
    ret = ""
   
    for k in 0..s.size-1
        n = s[k]-48
          str=""
         if n == 0
             str = "零" if s.size>=3 && k!=s.size-1 && k!=0 # not first and last
         else
         
            d = list[n]
            l = s.size-k-1
            case l
            when 0: str=d
            when 1: 
                begin
                if n != 1
                    str += d
                end
                str +="十"
                end
            when 2: str += d+"百"
            when 3: str += d+"千"
            when 4: str += d+"万"
            when 5: str += d+"十万"
            when 6: str += d+"百万"
            when 7: str += d+"千万"
            when 8: str += d+"亿"
            when 9: str += d+"十亿"
            when 10: str += d+"百亿"
            when 11: str += d+"千亿"
            when 12: str += d+"万亿"
            end
        end
        if str[str.size-1..str.size-1] == '零' && str.size>1
            str = str[0..str.size-2]
        end
        ret += str
        
    end
    return ret
end
obj_is_number?(o) click to toggle source
# File lib/rubyutility.rb, line 61
def obj_is_number?(o)
    return o.is_a?(Numeric)
end
rand_get_from_array(ar) click to toggle source
# File lib/rubyutility.rb, line 57
def rand_get_from_array(ar)
    return ar[rand(ar.size)]
end
read_delete_file(fname) click to toggle source
# File lib/rubyutility.rb, line 180
def read_delete_file(fname)
    begin
    if FileTest::exists?(fname)   

        data = nil
        open(fname, "r+") {|f|
            data = f.read
             File.delete(fname)
            }
            return data
        end
    rescue Exception=>e
                logger.error e
                p e.inspect
    end
    return nil
end
read_file(fname) click to toggle source
# File lib/rubyutility.rb, line 147
def read_file(fname)
    begin
        if FileTest::exists?(fname) 
            data= nil  
            open(fname, "r") {|f|
                   data = f.read
            }
            return data
        end
    rescue Exception=>e
         logger.error e
         p e.inspect
    end
    return nil
end
readout_file(fname) click to toggle source
# File lib/rubyutility.rb, line 162
def readout_file(fname)
    begin
    if FileTest::exists?(fname)   

        data = nil
        open(fname, "r+") {|f|
            data = f.read
                f.seek(0) 
                f.truncate(0)
            }
            return data
        end
    rescue Exception=>e
                logger.error e
                p e.inspect
    end
    return nil
end
save_to_file(data, fname) click to toggle source
# File lib/rubyutility.rb, line 205
def save_to_file(data, fname)
    dir = get_dir(fname)
    FileUtils.makedirs(dir) if dir
    begin
            open(fname, "w+") {|f|
                   f.write(data)
               }    
    rescue Exception=>e
         err e
         return false
    end
    return true
end
show_stack(stack = nil) click to toggle source

begin

raise Exception.new

rescue Exception=>e

stack = 100
if e.backtrace.size >=2 
    stack  += 1
    stack = e.backtrace.size-1 if stack >= e.backtrace.size
    p e.backtrace[1..stack].join("\n") 
end

end

# File lib/rubyutility.rb, line 89
def show_stack(stack = nil)
        stack = 99999 if stack == nil || stack <= 0
        begin
            raise Exception.new
        rescue Exception=>e
            if e.backtrace.size >=2 
                stack  += 1
                stack = e.backtrace.size-1 if stack >= e.backtrace.size
                return e.backtrace[1..stack].join("\n") 
            end
        end
        return ""
end
str_is_number?(s) click to toggle source
# File lib/rubyutility.rb, line 64
def str_is_number?(s)
    return s.to_i.to_s == s
end
unrand(min, max, rate=2) click to toggle source
# File lib/rubyutility.rb, line 69
def unrand(min, max, rate=2)
  s = max - min +1
  index = (rand(rate*s)+rand(rate*s))/rate
  index = s-1 if index == s
  index = s-index%s if index > s
  return index + min
end
util_get_prop(prop, k) click to toggle source
# File lib/rubyutility.rb, line 102
def util_get_prop(prop, k)
      js = prop
      if js.class == String
            begin
                js = JSON.parse(prop)
            rescue Exception=>e
                p "parse json string failed, error:#{e.inspect}, string=#{prop}"
                err(e)
            end
          
      end
      if js
          return js[k]
      else
          return nil
      end
end
util_set_prop(prop,n,v) click to toggle source
# File lib/rubyutility.rb, line 119
def util_set_prop(prop,n,v)
      js = prop
      if js.class == String
          js = JSON.parse(prop)
      end
      if js == nil
          js =JSON.parse("{}")
      end

    js[n] = v
   return  js.to_json
end