lib/trailblazer/finder/utils/string.rb in trailblazer-finder-0.1.4 vs lib/trailblazer/finder/utils/string.rb in trailblazer-finder-0.2.5
- old
+ new
@@ -1,34 +1,44 @@
-require 'date'
+# frozen_string_literal: true
module Trailblazer
class Finder
# Helper module
module Utils
class String
- def self.blank?(value)
- return false if num?(value)
- value.nil? || value.strip.empty?
+ def self.blank?(string)
+ return false if numeric?(string)
+
+ string.nil? || string.strip.empty?
end
- def self.num?(str)
- Integer(str)
- rescue ArgumentError, TypeError
+ def self.numeric?(string)
+ !Float(string).nil?
+ rescue StandardError
false
end
def self.camelize(text)
text.to_s.gsub(/(?:^|_)(.)/) { Regexp.last_match[1].upcase }
end
def self.underscore(text)
text
- .to_s.gsub(/::/, '/')
+ .to_s.gsub(/::/, "/")
.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
- .tr('-', '_')
- .tr(' ', '_')
+ .tr("-", "_")
+ .tr(" ", "_")
.downcase
+ end
+
+ def self.to_date(value)
+ Date.parse(value).strftime("%Y-%m-%d") if date?(value)
+ end
+
+ def self.date?(date)
+ date_hash = Date._parse(date.to_s)
+ Date.valid_date?(date_hash[:year].to_i, date_hash[:mon].to_i, date_hash[:mday].to_i)
end
end
end
end
end