Module: Origin::Extensions::String

Defined in:
lib/origin/extensions/string.rb

Overview

This module contains additional object behaviour.

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#__evolve_date__Time

Evolve the string into a mongodb friendly date.

Examples:

Evolve the string.

"2012-1-1".__evolve_date__

Returns:

  • (Time)

    The time at UTC midnight.

Since:

  • 1.0.0



16
17
18
19
# File 'lib/origin/extensions/string.rb', line 16

def __evolve_date__
  time = ::Time.parse(self)
  ::Time.utc(time.year, time.month, time.day, 0, 0, 0, 0)
end

#__evolve_time__Time

Evolve the string into a mongodb friendly time.

Examples:

Evolve the string.

"2012-1-1".__evolve_time__

Returns:

  • (Time)

    The string as a time.

Since:

  • 1.0.0



29
30
31
# File 'lib/origin/extensions/string.rb', line 29

def __evolve_time__
  ::Time.parse(self).utc
end

#__sort_option__Hash

Get the string as a sort option.

Examples:

Get the string as a sort option.

"field ASC".__sort_option__

Returns:

  • (Hash)

    The string as a sort option hash.

Since:

  • 1.0.0



41
42
43
44
45
46
47
48
# File 'lib/origin/extensions/string.rb', line 41

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

#specify(value, negating = false) ⇒ Hash

Get the string as a specification.

Examples:

Get the string as a criteria.

"field".specify(value)

Parameters:

  • value (Object)

    The value of the criteria.

  • negating (true, false) (defaults to: false)

    If the selection should be negated.

Returns:

  • (Hash)

    The selection.

Since:

  • 1.0.0



61
62
63
# File 'lib/origin/extensions/string.rb', line 61

def specify(value, negating = false)
  (negating && value.regexp?) ? { self => { "$not" => value } } : { self => value }
end

#to_directionInteger

Get the string as a sort direction.

Examples:

Get the string as a sort direction.

"1".to_direction

Returns:

  • (Integer)

    The direction.

Since:

  • 1.0.0



73
74
75
# File 'lib/origin/extensions/string.rb', line 73

def to_direction
  self =~ /desc/i ? -1 : 1
end