module Mongoid::Extensions::String
Adds type-casting behavior to String
class.
Attributes
@attribute [rw] unconvertable_to_bson
If the document is unconvertable. @deprecated
Public Instance Methods
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 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 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
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
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
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
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
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
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
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
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
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