Module: JIJI::Util

Defined in:
lib/jiji/util/util.rb

Defined Under Namespace

Modules: JsonSupport, Model

Class Method Summary collapse

Class Method Details

.decode(str) ⇒ Object

base64でエンコードした文字列をデコードする



36
37
38
# File 'lib/jiji/util/util.rb', line 36

def decode( str )
  str.gsub(/_/, "/").unpack('m')[0]
end

.encode(str) ⇒ Object

文字列をbase64でエンコードする



32
33
34
# File 'lib/jiji/util/util.rb', line 32

def encode( str ) 
  [str].pack("m").gsub(/\//, "_").gsub(/\n/, "")
end

.log_if_error(logger) ⇒ Object

ブロック内で例外が発生したらログに出力する。 発生した例外は内部で握る。



13
14
15
16
17
18
19
# File 'lib/jiji/util/util.rb', line 13

def log_if_error( logger ) 
  begin
    return yield if block_given?
  rescue Exception
    logger.error($!)
  end
end

.log_if_error_and_throw(logger) ⇒ Object

ブロック内で例外が発生したらログに出力する。 ログ出力後、例外を再スローする。



22
23
24
25
26
27
28
29
# File 'lib/jiji/util/util.rb', line 22

def log_if_error_and_throw( logger ) 
  begin
    return yield if block_given?
  rescue Exception
    logger.error($!)
    throw $!
  end
end

.parse_scale(scale) ⇒ Object

期間を示す文字列を解析する



97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/jiji/util/util.rb', line 97

def self.parse_scale( scale )
  return nil if  scale.to_s == "raw"
  unless scale.to_s =~ /(\d+)([smhd])/
    raise JIJI::UserError.new( JIJI::ERROR_ALREADY_EXIST, "illegal scale. scale=#{scale}") 
  end
  return case $2
    when "s"; $1.to_i
    when "m"; $1.to_i * 60
    when "h"; $1.to_i * 60 * 60
    when "d"; $1.to_i * 60 * 60 * 24
  end
end