Looks good, so now we can do:
.post(:id => "NO123", "name" => "new name")

Would be good to have it like that:
.post("NO123", { "name" => "new name" })
.get("NO124")

The following will populate both variable properly:
def call(*args)
  resource_id, opts = args;
  ...