module Origin::Extensions::String
This module contains additional object behaviour.
Public Instance Methods
Evolve the string into a mongodb friendly date.
@example Evolve the string.
"2012-1-1".__evolve_date__
@return [ Time ] The time at UTC midnight.
@since 1.0.0
# File lib/origin/extensions/string.rb, line 15 def __evolve_date__ time = ::Time.parse(self) ::Time.utc(time.year, time.month, time.day, 0, 0, 0, 0) end
Evolve the string into a mongodb friendly time.
@example Evolve the string.
"2012-1-1".__evolve_time__
@return [ Time ] The string as a time.
@since 1.0.0
# File lib/origin/extensions/string.rb, line 28 def __evolve_time__ ::Time.parse(self).utc end
Get the string as a specification.
@example Get the string as a criteria.
"field".__expr_part__(value)
@param [ Object ] value The value of the criteria. @param [ true, false ] negating If the selection should be negated.
@return [ Hash ] The selection.
@since 1.0.0
# File lib/origin/extensions/string.rb, line 72 def __expr_part__(value, negating = false) ::String.__expr_part__(self, value, negating) end
Get the string as a mongo expression, adding $ to the front.
@example Get the string as an expression.
"test".__mongo_expression__
@return [ String ] The string with $ at the front.
@since 2.0.0
# File lib/origin/extensions/string.rb, line 40 def __mongo_expression__ start_with?("$") ? self : "$#{self}" end
Get the string as a sort option.
@example Get the string as a sort option.
"field ASC".__sort_option__
@return [ Hash ] The string as a sort option hash.
@since 1.0.0
# File lib/origin/extensions/string.rb, line 52 def __sort_option__ split(/,/).inject({}) do |hash, spec| hash.tap do |_hash| field, direction = spec.strip.split(/\s/) _hash[field.to_sym] = direction.to_direction end end end
Get the string as a sort direction.
@example Get the string as a sort direction.
"1".to_direction
@return [ Integer ] The direction.
@since 1.0.0
# File lib/origin/extensions/string.rb, line 84 def to_direction self =~ /desc/i ? -1 : 1 end