class URI::GID

def build(args)

URI::GID.build(['bcx', 'Person', '1', key: 'value'])

Using an array, the arguments must be in order [app, model_name, model_id, params]:

URI::GID.build(app: 'bcx', model_name: 'Person', model_id: '1', params: { key: 'value' })

Using a hash:

either a hash or an array.
The allowed components are app, model_name, model_id and params, which can be

Create a new URI::GID from components with argument check.
def build(args)
  parts = Util.make_components_hash(self, args)
  parts[:host] = parts[:app]
  parts[:path] = "/#{parts[:model_name]}/#{CGI.escape(parts[:model_id].to_s)}"
  if parts[:params] && !parts[:params].empty?
    parts[:query] = URI.encode_www_form(parts[:params])
  end
  super parts
end