Module: Kotsms2::Formatter
- Included in:
- Client
- Defined in:
- lib/kotsms2/formatter.rb
Instance Method Summary collapse
- #format_balance_info(original_info) ⇒ Object
- #format_message_status(original_info) ⇒ Object
- #format_send_message_info(original_info) ⇒ Object
- #format_time_string(time) ⇒ Object
- #match_string(rule, string) ⇒ Object
- #message_status_sanitize(original_text) ⇒ Object
- #to_asia_taipei_timezone(time) ⇒ Object
- #to_big5(original_string) ⇒ Object
- #to_utf8(original_string) ⇒ Object
Instance Method Details
#format_balance_info(original_info) ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/kotsms2/formatter.rb', line 89 def format_balance_info(original_info) new_info = { access_success: false, message_quota: 0, error: nil } code_text = match_string(/^(?<code>-?\d+)$/, original_info) code_number = code_text.to_i new_info[:access_success] = !code_text.nil? && code_number > -1 if new_info[:access_success] new_info[:message_quota] = code_number else new_info[:error] = code_text.nil? ? "KOTSMS:CODE_NOT_FOUND" : "KOTSMS:#{code_text}".upcase end new_info end |
#format_message_status(original_info) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/kotsms2/formatter.rb', line 46 def (original_info) new_info = { access_success: false, is_delivered: false, message_status: nil, error: nil } status_text = match_string(/^statusstr=(?<status>\w+)$/, original_info) new_info[:access_success] = !status_text.nil? && status_text != 'MEMBERERROR' && status_text != 'NOSMS' if new_info[:access_success] new_info[:message_status] = (status_text) new_info[:is_delivered] = new_info[:message_status] == 'delivered' else new_info[:error] = status_text.nil? ? "KOTSMS:CODE_NOT_FOUND" : "KOTSMS:#{status_text}".upcase end new_info end |
#format_send_message_info(original_info) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/kotsms2/formatter.rb', line 68 def (original_info) new_info = { access_success: false, message_id: nil, error: nil } code_text = match_string(/^kmsgid=(?<code>-?\d+)$/, original_info) code_number = code_text.to_i new_info[:access_success] = !code_text.nil? && code_number > -1 if new_info[:access_success] new_info[:message_id] = code_number.to_s else new_info[:error] = code_text.nil? ? "KOTSMS:CODE_NOT_FOUND" : "KOTSMS:#{code_text}".upcase end new_info end |
#format_time_string(time) ⇒ Object
16 17 18 19 20 |
# File 'lib/kotsms2/formatter.rb', line 16 def format_time_string(time) return nil if time.nil? new_time = to_asia_taipei_timezone(time) new_time.strftime('%Y/%m/%d %H:%M:%S') end |
#match_string(rule, string) ⇒ Object
11 12 13 14 |
# File 'lib/kotsms2/formatter.rb', line 11 def match_string(rule, string) match_data = rule.match(string) match_data.nil? ? nil : match_data[1] end |
#message_status_sanitize(original_text) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/kotsms2/formatter.rb', line 28 def (original_text) status_table = { 'SUCCESSED' => 'delivered', 'DELIVERED' => 'delivered', 'DELIVRD' => 'delivered', 'EXPIRED' => 'expired', 'DELETED' => 'deleted', 'UNDELIV' => 'undelivered', 'ACCEPTD' => 'transmitting', 'UNKNOWN' => 'unknown', 'REJECTD' => 'rejected', 'SYNTAXE' => 'incorrect_sms_system_syntax' } new_text = status_table[original_text] new_text.nil? ? 'status_undefined' : new_text end |
#to_asia_taipei_timezone(time) ⇒ Object
22 23 24 25 26 |
# File 'lib/kotsms2/formatter.rb', line 22 def to_asia_taipei_timezone(time) utc_time = time.utc? ? time.dup : time.dup.utc asia_taipei_time = utc_time.getlocal('+08:00') asia_taipei_time end |
#to_big5(original_string) ⇒ Object
3 4 5 |
# File 'lib/kotsms2/formatter.rb', line 3 def to_big5(original_string) original_string.encode("BIG5", :invalid => :replace, :undef => :replace, :replace => "?") end |
#to_utf8(original_string) ⇒ Object
7 8 9 |
# File 'lib/kotsms2/formatter.rb', line 7 def to_utf8(original_string) original_string.encode("UTF-8", :invalid => :replace, :undef => :replace, :replace => "?") end |