# File lib/bson/types/object_id.rb, line 124
    def self.from_string(str)
      raise InvalidObjectId, "illegal ObjectId format: #{str}" unless legal?(str)
      data = []
      12.times do |i|
        data[i] = str[i * 2, 2].to_i(16)
      end
      self.new(data)
    end