Module: BSON::Regexp

Includes:
JSON
Defined in:
lib/bson/regexp.rb

Overview

Injects behaviour for encoding and decoding regular expression values to and from raw bytes as specified by the BSON spec.

See Also:

Since:

  • 2.0.0

Defined Under Namespace

Modules: ClassMethods

Constant Summary collapse

BSON_TYPE =

A regular expression is type 0x0B in the BSON spec.

Since:

  • 2.0.0

11.chr.force_encoding(BINARY).freeze

Instance Method Summary collapse

Methods included from JSON

#to_json

Instance Method Details

#as_json(*args) ⇒ Hash

Get the regexp as JSON hash data.

Examples:

Get the regexp as a JSON hash.

regexp.as_json

Returns:

  • (Hash)

    The regexp as a JSON hash.

Since:

  • 2.0.0



39
40
41
# File 'lib/bson/regexp.rb', line 39

def as_json(*args)
  { "$regex" => source, "$options" => bson_options }
end

#to_bson(encoded = ''.force_encoding(BINARY)) ⇒ String

Note:

From the BSON spec: The first cstring is the regex pattern, the second is the regex options string. Options are identified by characters, which must be stored in alphabetical order. Valid options are ‘i’ for case insensitive matching, ‘m’ for multiline matching, ‘x’ for verbose mode, ‘l’ to make w, W, etc. locale dependent, ‘s’ for dotall mode (‘.’ matches everything), and ‘u’ to make w, W, etc. match unicode.

Get the regular expression as encoded BSON.

Examples:

Get the regular expression as encoded BSON.

%r{\d+}.to_bson

Returns:

  • (String)

    The encoded string.

See Also:

Since:

  • 2.0.0



62
63
64
65
# File 'lib/bson/regexp.rb', line 62

def to_bson(encoded = ''.force_encoding(BINARY))
  source.to_bson_cstring(encoded)
  bson_options.to_bson_cstring(encoded)
end