Uploaded image for project: 'Ruby Driver'
  1. Ruby Driver
  2. RUBY-915

BSON::ObjectId conversion function to pass through ObjectIds

    • Type: Icon: Improvement Improvement
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • bson-4.0.0
    • Affects Version/s: 1.12.1
    • Component/s: BSON
    • None
    • Minor Change

      The function BSON::ObjectId() is currently a simple wrapper for BSON::ObjectId.from_string().

      However, the signature of BSON::ObjectId() suggests that it is a conversion function. Conversion functions generally take different kinds of input and converts it do the desired type. They typically return the input if the input already is of the correct type.

      BSON::ObjectId breaks this convention by throwing an error if the input is already an ObjectId.

      Here's a general discussion on ruby conversion function idioms: http://devblog.avdi.org/2012/05/07/a-ruby-conversion-idiom/

      I've implemented this here: https://github.com/jesjos/mongo-ruby-driver/commit/22c0cb838bf7ca6f7979ea4f334d3a11c481b8a6

        1. conversion-function.diff
          0.8 kB
          Olle Jonsson

            Assignee:
            durran.jordan@mongodb.com Durran Jordan
            Reporter:
            adironduck Jesper Josefsson
            Votes:
            2 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: