module Mongoid::Extensions::String

Adds type-casting behavior to String class.

Attributes

unconvertable_to_bson[RW]

@attribute [rw] unconvertable_to_bson If the document is unconvertable. @deprecated

Public Instance Methods

__evolve_object_id__() click to toggle source

Evolve the string into an object id if possible.

@example Evolve the string.

"test".__evolve_object_id__

@return [ String | BSON::ObjectId ] The evolved string.

# File lib/mongoid/extensions/string.rb, line 21
def __evolve_object_id__
  convert_to_object_id
end
__mongoize_object_id__() click to toggle source

Mongoize the string into an object id if possible.

@example Evolve the string.

"test".__mongoize_object_id__

@return [ String | BSON::ObjectId | nil ] The mongoized string.

# File lib/mongoid/extensions/string.rb, line 31
def __mongoize_object_id__
  convert_to_object_id unless blank?
end
__mongoize_time__() click to toggle source

Mongoize the string for storage.

@note Returns a local time in the default time zone.

@example Mongoize the string.

"2012-01-01".__mongoize_time__
# => 2012-01-01 00:00:00 -0500

@raise [ ArgumentError ] The string is not a valid time string.

@return [ Time | ActiveSupport::TimeWithZone ] Local time in the

configured default time zone corresponding to this string.
# File lib/mongoid/extensions/string.rb, line 47
def __mongoize_time__
  # This extra Time.parse is required to raise an error if the string
  # is not a valid time string. ActiveSupport::TimeZone does not
  # perform this check.
  ::Time.parse(self)

  ::Time.zone.parse(self)
end
before_type_cast?() click to toggle source

Does the string end with _before_type_cast?

@example Is the string a setter method?

"price_before_type_cast".before_type_cast?

@return [ true | false ] If the string ends with “_before_type_cast”

# File lib/mongoid/extensions/string.rb, line 127
def before_type_cast?
  ends_with?("_before_type_cast")
end
collectionize() click to toggle source

Convert the string to a collection friendly name.

@example Collectionize the string.

"namespace/model".collectionize

@return [ String ] The string in collection friendly form.

# File lib/mongoid/extensions/string.rb, line 62
def collectionize
  tableize.gsub("/", "_")
end
mongoid_id?() click to toggle source

Is the string a valid value for a Mongoid id?

@example Is the string an id value?

"_id".mongoid_id?

@return [ true | false ] If the string is id or _id. @deprecated

# File lib/mongoid/extensions/string.rb, line 73
def mongoid_id?
  self =~ /\A(|_)id\z/
end
numeric?() click to toggle source

Is the string a number? The literals “NaN”, “Infinity”, and “-Infinity” are counted as numbers.

@example Is the string a number.

"1234.23".numeric?

@return [ true | false ] If the string is a number.

# File lib/mongoid/extensions/string.rb, line 85
def numeric?
  !!Float(self)
rescue ArgumentError
  (self =~ /\A(?:NaN|-?Infinity)\z/) == 0
end
reader() click to toggle source

Get the string as a getter string.

@example Get the reader/getter

"model=".reader

@return [ String ] The string stripped of “=”.

# File lib/mongoid/extensions/string.rb, line 97
def reader
  delete("=").sub(/\_before\_type\_cast\z/, '')
end
unconvertable_to_bson?() click to toggle source

Is the object not to be converted to bson on criteria creation?

@example Is the object unconvertable?

object.unconvertable_to_bson?

@return [ true | false ] If the object is unconvertable. @deprecated

# File lib/mongoid/extensions/string.rb, line 139
def unconvertable_to_bson?
  @unconvertable_to_bson ||= false
end
valid_method_name?() click to toggle source

Is this string a valid_method_name?

@example Is the string a valid Ruby identifier for use as a method name

"model=".valid_method_name?

@return [ true | false ] If the string contains a valid Ruby identifier.

# File lib/mongoid/extensions/string.rb, line 117
def valid_method_name?
  /[@$"-]/ !~ self
end
writer?() click to toggle source

Is this string a writer?

@example Is the string a setter method?

"model=".writer?

@return [ true | false ] If the string contains “=”.

# File lib/mongoid/extensions/string.rb, line 107
def writer?
  include?("=")
end

Private Instance Methods

convert_to_object_id() click to toggle source

If the string is a legal object id, convert it.

@api private

@example Convert to the object id.

string.convert_to_object_id

@return [ String | BSON::ObjectId ] The string or the id.

# File lib/mongoid/extensions/string.rb, line 154
def convert_to_object_id
  BSON::ObjectId.legal?(self) ? BSON::ObjectId.from_string(self) : self
end