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