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

#__expr_part__(value, negating = false) ⇒ Hash

Get the string as a specification.

Examples:

Get the string as a criteria.

"field".__expr_part__(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



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

def __expr_part__(value, negating = false)
  ::String.__expr_part__(self, value, negating)
end

#__mongo_expression__String

Get the string as a mongo expression, adding $ to the front.

Examples:

Get the string as an expression.

"test".__mongo_expression__

Returns:

  • (String)

    The string with $ at the front.

Since:

  • 2.0.0



41
42
43
# File 'lib/origin/extensions/string.rb', line 41

def __mongo_expression__
  start_with?("$") ? self : "$#{self}"
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



53
54
55
56
57
58
59
60
# File 'lib/origin/extensions/string.rb', line 53

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

#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



85
86
87
# File 'lib/origin/extensions/string.rb', line 85

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