module Origin::Extensions::String

This module contains additional object behaviour.

Public Instance Methods

__evolve_date__() click to toggle source

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_time__() click to toggle source

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
__sort_option__() click to toggle source

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 40
def __sort_option__
  split(%r,/).inject({}) do |hash, spec|
    hash.tap do |_hash|
      field, direction = spec.strip.split(%r\s/)
      _hash[field.to_sym] = direction.to_direction
    end
  end
end
specify(value, negating = false) click to toggle source

Get the string as a specification.

@example Get the string as a criteria.

"field".specify(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 60
def specify(value, negating = false)
  (negating && value.regexp?) ? { self => { "$not" => value } } : { self => value }
end
to_direction() click to toggle source

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 72
def to_direction
  self =~ %rdesc/ ? -1 : 1
end