Module: JIJI::Util

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

Defined Under Namespace

Modules: JsonSupport, Model

Class Method Summary collapse

Class Method Details

.convert_currency_pair_code(code) ⇒ Object

通貨ペアコードをシンボルに変換する



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/jiji/util/util.rb', line 11

def convert_currency_pair_code(code)
  case code
    when ClickClient::FX::USDJPY
      return :USDJPY
    when ClickClient::FX::EURJPY
      return :EURJPY
    when ClickClient::FX::GBPJPY
      return :GBPJPY
    when ClickClient::FX::AUDJPY
      return :AUDJPY
    when ClickClient::FX::NZDJPY
      return :NZDJPY
    when ClickClient::FX::CADJPY
      return :CADJPY
    when ClickClient::FX::CHFJPY
      return :CHFJPY
    when ClickClient::FX::ZARJPY
      return :ZARJPY
    when ClickClient::FX::EURUSD
      return :EURUSD
    when ClickClient::FX::GBPUSD
      return :GBPUSD
    when ClickClient::FX::AUDUSD
      return :AUDUSD
    when ClickClient::FX::EURCHF
      return :EURCHF
    when ClickClient::FX::GBPCHF
      return :GBPCHF
    when ClickClient::FX::USDCHF
      return :USDCHF
  end
end

.convert_currency_pair_code_r(code) ⇒ Object

シンボルを通貨ペアコードに変換する



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/jiji/util/util.rb', line 45

def convert_currency_pair_code_r(code)
  case code
    when :USDJPY
      return ClickClient::FX::USDJPY
    when :EURJPY
      return ClickClient::FX::EURJPY
    when :GBPJPY
      return ClickClient::FX::GBPJPY
    when :AUDJPY
      return ClickClient::FX::AUDJPY
    when :NZDJPY
      return ClickClient::FX::NZDJPY
    when :CADJPY
      return ClickClient::FX::CADJPY
    when :CHFJPY
      return ClickClient::FX::CHFJPY
    when :ZARJPY
      return ClickClient::FX::ZARJPY
    when :EURUSD
      return ClickClient::FX::EURUSD
    when :GBPUSD
      return ClickClient::FX::GBPUSD
    when :AUDUSD
      return ClickClient::FX::AUDUSD
    when :EURCHF
      return ClickClient::FX::EURCHF
    when :GBPCHF
      return ClickClient::FX::GBPCHF
    when :USDCHF
      return ClickClient::FX::USDCHF
  end
end

.decode(str) ⇒ Object

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



103
104
105
# File 'lib/jiji/util/util.rb', line 103

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

.encode(str) ⇒ Object

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



99
100
101
# File 'lib/jiji/util/util.rb', line 99

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

.log_if_error(logger) ⇒ Object

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



80
81
82
83
84
85
86
# File 'lib/jiji/util/util.rb', line 80

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

.log_if_error_and_throw(logger) ⇒ Object

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



89
90
91
92
93
94
95
96
# File 'lib/jiji/util/util.rb', line 89

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

.parse_scale(scale) ⇒ Object

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



164
165
166
167
168
169
170
171
172
173
174
175
# File 'lib/jiji/util/util.rb', line 164

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