Module: InternetBoxLogger::Parsers::Utils
- Included in:
- FreeboxV5Parser
- Defined in:
- lib/internet_box_logger/parsers/utils.rb
Constant Summary collapse
- CONSIDERED_TRUE =
%w(actif active activée activé ok true connectée connecté on décroché 1)
- CONSIDERED_FALSE =
%w(inactif inactive desactivé desactivée deconnecté deconnectée désactivé désactivée déconnecté déconnectée ko false off raccroché 0)
Instance Method Summary collapse
- #to_bandwidth(field_name, value_to_convert) ⇒ Object
- #to_bool(field_name, value_to_convert) ⇒ Object
- #to_db(field_name, value_to_convert) ⇒ Object
- #to_duration(field_name, value_to_convert) ⇒ Object
- #to_int(field_name, value_to_convert) ⇒ Object
- #to_num(field_name, value_to_convert) ⇒ Object
Instance Method Details
#to_bandwidth(field_name, value_to_convert) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/internet_box_logger/parsers/utils.rb', line 8 def to_bandwidth(field_name, value_to_convert) value_to_convert.match /^\s*(?<val>[\d\.]+)\s+(?<unit>[kKMmGg])b\/s/ do |md| mult = case md[:unit] when 'k', 'K' then 1024 when 'm', 'M' then 1024 * 1024 when 'g', 'G' then 1024 * 1024 end return md[:val].to_f * mult end EasyAppHelper.logger.warn "Cannot convert #{value_to_convert.inspect} to time duration (integer) for field #{field_name} !" nil end |
#to_bool(field_name, value_to_convert) ⇒ Object
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/internet_box_logger/parsers/utils.rb', line 37 def to_bool(field_name, value_to_convert) CONSIDERED_TRUE.each do |val| return true if value_to_convert.match /^#{val}$/i end CONSIDERED_FALSE.each do |val| return false if value_to_convert.match /^#{val}$/i end EasyAppHelper.logger.warn "Cannot convert #{value_to_convert.inspect} to boolean for field #{field_name} !" nil end |
#to_db(field_name, value_to_convert) ⇒ Object
48 49 50 51 52 53 54 |
# File 'lib/internet_box_logger/parsers/utils.rb', line 48 def to_db(field_name, value_to_convert) value_to_convert.match /^(?<num_value>.+) db$/i do |md| return to_num(field_name, md[:num_value]) end EasyAppHelper.logger.warn "Cannot convert #{value_to_convert.inspect} to db for field #{field_name} !" nil end |
#to_duration(field_name, value_to_convert) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/internet_box_logger/parsers/utils.rb', line 25 def to_duration(field_name, value_to_convert) # 9 jours, 22 heures, 42 minutes value_to_convert.match /(?<days>\d+)\s*jours?,\s*(?<hours>\d+)\s*heures?,\s*(?<minutes>\d+)\s*minutes?/i do |md| d = md[:days].nil? ? 0 : md[:days].to_i h = md[:hours].nil? ? 0 : md[:hours].to_i m = md[:minutes].nil? ? 0 : md[:minutes].to_i return d * 86400 + h * 3600 + m * 60 end EasyAppHelper.logger.warn "Cannot convert #{value_to_convert.inspect} to time duration (integer) for field #{field_name} !" nil end |
#to_int(field_name, value_to_convert) ⇒ Object
64 65 66 67 68 69 70 |
# File 'lib/internet_box_logger/parsers/utils.rb', line 64 def to_int(field_name, value_to_convert) value_to_convert.match /^(?<num_value>[[:digit:]]+)$/i do |md| return md[:num_value].to_i end EasyAppHelper.logger.warn "Cannot convert #{value_to_convert.inspect} to integer for field #{field_name} !" nil end |
#to_num(field_name, value_to_convert) ⇒ Object
56 57 58 59 60 61 62 |
# File 'lib/internet_box_logger/parsers/utils.rb', line 56 def to_num(field_name, value_to_convert) value_to_convert.match /^(?<num_value>[[:digit:]\.\s,]+)$/i do |md| return md[:num_value].to_f end EasyAppHelper.logger.warn "Cannot convert #{value_to_convert.inspect} to num for field #{field_name} !" nil end |