module Mongoid::Extensions::String

Attributes

unconvertable_to_bson[RW]

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

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.

@since 3.0.0

# File lib/mongoid/extensions/string.rb, line 19
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.

@since 3.0.0

# 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

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

configured default time zone corresponding to this string.

@since 3.0.0

# File lib/mongoid/extensions/string.rb, line 47
def __mongoize_time__
  # This extra parse from Time is because ActiveSupport::TimeZone
  # either returns nil or Time.now if the string is empty or invalid,
  # which is a regression from pre-3.0 and also does not agree with
  # the core Time API.
  parsed = ::Time.parse(self)
  if ::Time == ::Time.configured
    parsed
  else
    ::Time.configured.parse(self)
  end
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”

@since 3.1.0

# File lib/mongoid/extensions/string.rb, line 143
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.

@since 1.0.0

# File lib/mongoid/extensions/string.rb, line 68
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.

@since 2.3.1

# File lib/mongoid/extensions/string.rb, line 80
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.

@since 3.0.0

# File lib/mongoid/extensions/string.rb, line 93
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 “=”.

@since 1.0.0

# File lib/mongoid/extensions/string.rb, line 107
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.

@since 2.2.1

# File lib/mongoid/extensions/string.rb, line 155
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 idenfier for use as a method name

"model=".valid_method_name?

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

@since 3.0.15

# File lib/mongoid/extensions/string.rb, line 131
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 “=”.

@since 1.0.0

# File lib/mongoid/extensions/string.rb, line 119
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.

@since 3.0.0

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