lib/sms77/util.rb in sms77-0.4.0 vs lib/sms77/util.rb in sms77-0.5.0

- old
+ new

@@ -1,68 +1,69 @@ -require 'date' - -module Sms77::Util - def self.to_numbered_bool(val) - if true == val - return 1 - elsif false == val - return 0 - end - - return val - end - - def self.get_namespace_members_by_type(ns, type) - ns.constants.map(&ns.method(:const_get)).grep(type) - end - - def self.get_namespace_classes(ns) - return self.get_namespace_members_by_type(ns, Class) - end - - def self.get_module_constant_values(mod) - mod.constants(false).map &mod.method(:const_get) - end - - def self.is_valid_url?(str) - str =~ URI::regexp - end - - def self.is_valid_datetime?(str) - begin - DateTime.parse(str) - true - rescue ArgumentError - false - end - end - - def self.is_positive_integer?(val) - /\A\d+\z/.match?(val.to_s) - end - - def self.in_module_constants?(needle, mod) - get_module_constant_values(mod).include?(needle) - end - - def self.valid_float?(str) - !!Float(str) rescue false - end - - def self.numeric?(val) - return true if val.is_a?(Integer) - - val.scan(/\D/).empty? - end - - def self.boolean?(val) - [true, false].include? val - end - - def self.nil_or_lengthy_string?(val) - val.nil? || (val.is_a?(String) && val.length) - end - - def self.lengthy_string?(val) - return val.is_a?(String) && !val.empty? - end +require 'date' + +# This module exposes general utilities used throughout the library. +module Sms77::Util + def self.to_numbered_bool(val) + if true == val + return 1 + elsif false == val + return 0 + end + + return val + end + + def self.get_namespace_members_by_type(ns, type) + ns.constants.map(&ns.method(:const_get)).grep(type) + end + + def self.get_namespace_classes(ns) + return self.get_namespace_members_by_type(ns, Class) + end + + def self.get_module_constant_values(mod) + mod.constants(false).map &mod.method(:const_get) + end + + def self.is_valid_url?(str) + str =~ URI::regexp + end + + def self.is_valid_datetime?(str) + begin + DateTime.parse(str) + true + rescue ArgumentError + false + end + end + + def self.is_positive_integer?(val) + /\A\d+\z/.match?(val.to_s) + end + + def self.in_module_constants?(needle, mod) + get_module_constant_values(mod).include?(needle) + end + + def self.valid_float?(str) + !!Float(str) rescue false + end + + def self.numeric?(val) + return true if val.is_a?(Integer) + + val.scan(/\D/).empty? + end + + def self.boolean?(val) + [true, false].include? val + end + + def self.nil_or_lengthy_string?(val) + val.nil? || (val.is_a?(String) && val.length) + end + + def self.lengthy_string?(val) + return val.is_a?(String) && !val.empty? + end end \ No newline at end of file